Adds tests for os file list guesser

This commit is contained in:
Nemo 2021-07-16 12:27:39 +05:30
parent 50de21a2de
commit 6ae7264c73
6 changed files with 46 additions and 13 deletions

9
_scripts/gen-fixture.js Normal file
View File

@ -0,0 +1,9 @@
const path = require("path");
const zip = require("../zip");
const fs = require('fs')
const FILENAME = process.argv[2];
zip.listFileContents(FILENAME, (entries)=> {
fs.writeFileSync(`./tests/fixtures/${path.basename(FILENAME)}.json`, JSON.stringify(entries))
});

View File

@ -33,7 +33,9 @@ zip.listFileContents(FILENAME, (entries)=> {
try {
let packageData = JSON.parse(c)
console.log(packageData['version'])
}catch(e){}
}catch(e){
// TODO: Do something
}
})
});
}

View File

@ -1,48 +1,44 @@
const test = require("kuta").test;
const finder = require("../finder");
const assert = require("assert");
const fs = require("fs");
function getEntries(fn) {
return JSON.parse(fs.readFileSync(`./tests/fixtures/${fn}.json`));
}
const _ = require('./utils')
test("it should find the electron.asar file", () => {
assert.deepEqual(
["Hyper.app/Contents/Resources/electron.asar"],
finder.asar(getEntries("Hyper-3.0.2-mac.zip"))
finder.asar(_.getEntries("Hyper-3.0.2-mac.zip"))
);
});
test("it should find the correct binary file", () => {
assert.deepEqual(
"Hyper.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework",
finder.binary(getEntries("Hyper-3.0.2-mac.zip"))
finder.binary(_.getEntries("Hyper-3.0.2-mac.zip"))
);
assert.deepEqual(
"Notable.exe",
finder.binary(getEntries("Notable-1.8.4-win.zip"))
finder.binary(_.getEntries("Notable-1.8.4-win.zip"))
);
assert.deepEqual(
"rambox",
finder.binary(getEntries("Rambox-0.7.7-linux-x64.zip"))
finder.binary(_.getEntries("Rambox-0.7.7-linux-x64.zip"))
);
});
test("it should find the version file", () => {
assert.deepEqual(
["chronobreak-linux-x64/version"],
finder.version(getEntries("chronobreak-linux-x64.zip"))
finder.version(_.getEntries("chronobreak-linux-x64.zip"))
);
assert.deepEqual(
["release-builds/encrypt0r-darwin-x64/version"],
finder.version(getEntries("encrypt0r-mac.zip"))
finder.version(_.getEntries("encrypt0r-mac.zip"))
);
assert.deepEqual(
[
"Arizona v.1.0.0/resources/app/node_modules/electron/dist/version",
"Arizona v.1.0.0/version",
],
finder.version(getEntries("Arizona-v1.0.0-beta-Windows.zip"))
finder.version(_.getEntries("Arizona-v1.0.0-beta-Windows.zip"))
);
});

1
tests/fixtures/Lax-win32-x64.zip.json vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,7 @@
const test = require('kuta').test;
const os = require('../os')
const assert = require('assert')
const _ = require('./utils')
test('it should linux correctly from filename', ()=> {
assert.deepEqual('linux', os.guessFromFilename('kube-dev-dashboard-0.10.1-linux.zip'))
@ -23,3 +24,13 @@ test('it should windows correctly from filename', ()=> {
assert.deepEqual('win32', os.guessFromFilename('Multrin-1.3.0-ia32-win.zip'))
assert.deepEqual('win32', os.guessFromFilename('Multrin-1.3.0-ia32-win.exe'))
});
test('it should guess correctly from file list', ()=> {
assert.deepEqual('win32', os.guessFromContents(_.getEntries('Arizona-v1.0.0-beta-Windows.zip')));
assert.deepEqual('win32', os.guessFromContents(_.getEntries('Notable-1.8.4-win.zip')));
assert.deepEqual('darwin', os.guessFromContents(_.getEntries('encrypt0r-mac.zip')));
assert.deepEqual('darwin', os.guessFromContents(_.getEntries('Hyper-3.0.2-mac.zip')));
assert.deepEqual('linux', os.guessFromContents(_.getEntries('chronobreak-linux-x64.zip')));
assert.deepEqual('linux', os.guessFromContents(_.getEntries('Rambox-0.7.7-linux-x64.zip')));
});

14
tests/utils.js Normal file
View File

@ -0,0 +1,14 @@
const fs = require("fs");
entries = {};
module.exports = {
getEntries: function(f) {
if (entries[f]) {
return entries[f];
} else {
return (entries[f] = JSON.parse(
fs.readFileSync(`./tests/fixtures/${f}.json`)
));
}
},
};