2017-03-25 19:00:36 -03:00
|
|
|
var fs = require("fs");
|
|
|
|
var path = require("path");
|
2019-06-04 10:43:06 +02:00
|
|
|
var expect = require("chai").expect;
|
2017-03-25 19:00:36 -03:00
|
|
|
var vm = require("vm");
|
|
|
|
|
2020-05-11 22:22:32 +02:00
|
|
|
before(function () {
|
2017-03-25 19:00:36 -03:00
|
|
|
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: {
|
2020-05-11 22:22:32 +02:00
|
|
|
log: function () {
|
|
|
|
/*console.log("console.log(", arguments, ")");*/
|
|
|
|
}
|
2017-03-25 19:00:36 -03:00
|
|
|
},
|
|
|
|
process: {
|
2020-05-11 22:22:32 +02:00
|
|
|
on: function () {
|
|
|
|
/*console.log("process.on called with: ", arguments);*/
|
|
|
|
},
|
2017-03-25 19:00:36 -03:00
|
|
|
env: {}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2020-05-11 22:22:32 +02:00
|
|
|
this.sandbox.require = function (filename) {
|
2017-03-25 19:00:36 -03:00
|
|
|
// This modifies the global slightly,
|
|
|
|
// but supplies vm with essential code
|
|
|
|
return require(filename);
|
|
|
|
};
|
|
|
|
|
|
|
|
vm.runInNewContext(code, this.sandbox, fileName);
|
|
|
|
});
|
|
|
|
|
2020-05-11 22:22:32 +02:00
|
|
|
after(function () {
|
2017-03-25 19:00:36 -03:00
|
|
|
//console.log(global);
|
|
|
|
});
|
|
|
|
|
2020-05-11 22:22:32 +02:00
|
|
|
describe("Default modules set in modules/default/defaultmodules.js", function () {
|
|
|
|
var expectedDefaultModules = ["alert", "calendar", "clock", "compliments", "currentweather", "helloworld", "newsfeed", "weatherforecast", "updatenotification"];
|
2017-03-25 19:00:36 -03:00
|
|
|
|
2020-05-11 22:22:32 +02:00
|
|
|
expectedDefaultModules.forEach((defaultModule) => {
|
|
|
|
it(`contains default module "${defaultModule}"`, function () {
|
2017-03-25 19:00:36 -03:00
|
|
|
expect(this.sandbox.defaultModules).to.include(defaultModule);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2020-05-11 22:22:32 +02:00
|
|
|
expectedDefaultModules.forEach((defaultModule) => {
|
|
|
|
it(`contains a folder for modules/default/${defaultModule}"`, function () {
|
2017-03-25 23:52:18 -03:00
|
|
|
expect(fs.existsSync(path.join(this.sandbox.global.root_path, "modules/default", defaultModule))).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
2017-03-25 19:00:36 -03:00
|
|
|
});
|