MagicMirror/tests/unit/global_vars/root_path_spec.js

65 lines
1.7 KiB
JavaScript
Raw Normal View History

2020-04-19 08:18:11 +02:00
const fs = require("fs");
const path = require("path");
const expect = require("chai").expect;
const vm = require("vm");
2017-01-24 12:22:43 +01:00
2021-06-06 23:13:09 +02:00
beforeAll(function () {
2021-04-08 21:12:56 +02:00
const basedir = path.join(__dirname, "../../..");
2017-01-25 22:42:04 +01:00
2021-04-08 21:12:56 +02:00
const fileName = "js/app.js";
const filePath = path.join(basedir, fileName);
const code = fs.readFileSync(filePath);
2017-01-25 22:42:04 +01:00
2021-06-06 23:13:09 +02:00
sandbox = {
2017-01-25 22:42:04 +01:00
module: {},
__dirname: path.dirname(filePath),
global: {},
console: {
log: function () {
/*console.log("console.log(", arguments, ")");*/
}
2017-01-25 22:42:04 +01:00
},
process: {
on: function () {
/*console.log("process.on called with: ", arguments);*/
},
2017-01-25 22:42:04 +01:00
env: {}
}
};
2021-06-06 23:13:09 +02:00
sandbox.require = function (filename) {
2017-01-25 22:42:04 +01:00
// This modifies the global slightly,
// but supplies vm with essential code
return require(filename);
};
2017-01-25 11:58:20 +01:00
2021-06-06 23:13:09 +02:00
vm.runInNewContext(code, sandbox, fileName);
2017-01-25 22:42:04 +01:00
});
2021-06-06 23:13:09 +02:00
afterAll(function () {
2017-01-25 22:42:04 +01:00
//console.log(global);
});
describe("'global.root_path' set in js/app.js", function () {
2021-04-08 21:12:56 +02:00
const expectedSubPaths = ["modules", "serveronly", "js", "js/app.js", "js/main.js", "js/electron.js", "config"];
2017-01-24 12:22:43 +01:00
expectedSubPaths.forEach((subpath) => {
it(`contains a file/folder "${subpath}"`, function () {
2021-06-06 23:13:09 +02:00
expect(fs.existsSync(path.join(sandbox.global.root_path, subpath))).to.equal(true);
2017-01-24 12:22:43 +01:00
});
});
2017-01-25 22:42:04 +01:00
it("should not modify global.root_path for testing", function () {
2017-01-25 22:42:04 +01:00
expect(global.root_path).to.equal(undefined);
});
it("should not modify global.version for testing", function () {
2017-01-25 22:42:04 +01:00
expect(global.version).to.equal(undefined);
});
2017-02-07 19:35:51 -03:00
it("should expect the global.version equals package.json file", function () {
const versionPackage = JSON.parse(fs.readFileSync("package.json", "utf8")).version;
2021-06-06 23:13:09 +02:00
expect(sandbox.global.version).to.equal(versionPackage);
2017-02-07 19:35:51 -03:00
});
2017-01-24 12:22:43 +01:00
});