mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 03:39:55 +00:00
Run App in vm
This commit is contained in:
parent
123392c549
commit
cd8bee1371
@ -2,10 +2,42 @@ var fs = require("fs");
|
||||
var path = require("path");
|
||||
var chai = require("chai");
|
||||
var expect = chai.expect;
|
||||
var vm = require("vm");
|
||||
|
||||
before(function() {
|
||||
var basedir = path.join(__dirname, "../../..");
|
||||
|
||||
var fileName = "js/app.js";
|
||||
var filePath = path.join(basedir, fileName);
|
||||
var code = fs.readFileSync(filePath);
|
||||
|
||||
this.sandbox = {
|
||||
module: {},
|
||||
__dirname: path.dirname(filePath),
|
||||
global: {},
|
||||
console: {
|
||||
log: function() { /*console.log("console.log(", arguments, ")");*/ }
|
||||
},
|
||||
process: {
|
||||
on: function() { /*console.log("process.on called with: ", arguments);*/ },
|
||||
env: {}
|
||||
}
|
||||
};
|
||||
|
||||
this.sandbox.require = function(filename) {
|
||||
// This modifies the global slightly,
|
||||
// but supplies vm with essential code
|
||||
return require(filename);
|
||||
};
|
||||
|
||||
vm.runInNewContext(code, this.sandbox, fileName);
|
||||
});
|
||||
|
||||
after(function() {
|
||||
//console.log(global);
|
||||
});
|
||||
|
||||
describe("'global.root_path' set in js/app.js", function() {
|
||||
var appMM = require("../../../js/app.js")
|
||||
|
||||
var expectedSubPaths = [
|
||||
"modules",
|
||||
"serveronly",
|
||||
@ -18,8 +50,16 @@ describe("'global.root_path' set in js/app.js", function() {
|
||||
|
||||
expectedSubPaths.forEach(subpath => {
|
||||
it(`contains a file/folder "${subpath}"`, function() {
|
||||
expect(fs.existsSync(path.join(global.root_path, subpath))).to.equal(true);
|
||||
expect(fs.existsSync(path.join(this.sandbox.global.root_path, subpath))).to.equal(true);
|
||||
});
|
||||
});
|
||||
|
||||
it("should not modify global.root_path for testing", function() {
|
||||
expect(global.root_path).to.equal(undefined);
|
||||
});
|
||||
|
||||
it("should not modify global.version for testing", function() {
|
||||
expect(global.version).to.equal(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user