diff --git a/js/logger.js b/js/logger.js index 93a5bb53..5b8040ac 100644 --- a/js/logger.js +++ b/js/logger.js @@ -9,11 +9,13 @@ */ (function (root, factory) { if (typeof exports === "object") { - // add timestamps in front of log messages - require("console-stamp")(console, { - pattern: "yyyy-mm-dd HH:MM:ss.l", - include: ["debug", "log", "info", "warn", "error"] - }); + if (process.env.JEST_WORKER_ID === undefined) { + // add timestamps in front of log messages + require("console-stamp")(console, { + pattern: "yyyy-mm-dd HH:MM:ss.l", + include: ["debug", "log", "info", "warn", "error"] + }); + } // Node, CommonJS-like module.exports = factory(root.config); @@ -22,29 +24,46 @@ root.Log = factory(root.config); } })(this, function (config) { - const logLevel = { - debug: Function.prototype.bind.call(console.debug, console), - log: Function.prototype.bind.call(console.log, console), - info: Function.prototype.bind.call(console.info, console), - warn: Function.prototype.bind.call(console.warn, console), - error: Function.prototype.bind.call(console.error, console), - group: Function.prototype.bind.call(console.group, console), - groupCollapsed: Function.prototype.bind.call(console.groupCollapsed, console), - groupEnd: Function.prototype.bind.call(console.groupEnd, console), - time: Function.prototype.bind.call(console.time, console), - timeEnd: Function.prototype.bind.call(console.timeEnd, console), - timeStamp: Function.prototype.bind.call(console.timeStamp, console) - }; + let logLevel; + if (process.env.JEST_WORKER_ID === undefined) { + logLevel = { + debug: Function.prototype.bind.call(console.debug, console), + log: Function.prototype.bind.call(console.log, console), + info: Function.prototype.bind.call(console.info, console), + warn: Function.prototype.bind.call(console.warn, console), + error: Function.prototype.bind.call(console.error, console), + group: Function.prototype.bind.call(console.group, console), + groupCollapsed: Function.prototype.bind.call(console.groupCollapsed, console), + groupEnd: Function.prototype.bind.call(console.groupEnd, console), + time: Function.prototype.bind.call(console.time, console), + timeEnd: Function.prototype.bind.call(console.timeEnd, console), + timeStamp: Function.prototype.bind.call(console.timeStamp, console) + }; - logLevel.setLogLevel = function (newLevel) { - if (newLevel) { - Object.keys(logLevel).forEach(function (key, index) { - if (!newLevel.includes(key.toLocaleUpperCase())) { - logLevel[key] = function () {}; - } - }); - } - }; + logLevel.setLogLevel = function (newLevel) { + if (newLevel) { + Object.keys(logLevel).forEach(function (key, index) { + if (!newLevel.includes(key.toLocaleUpperCase())) { + logLevel[key] = function () {}; + } + }); + } + }; + } else { + logLevel = { + debug: function () {}, + log: function () {}, + info: function () {}, + warn: function () {}, + error: function () {}, + group: function () {}, + groupCollapsed: function () {}, + groupEnd: function () {}, + time: function () {}, + timeEnd: function () {}, + timeStamp: function () {} + }; + } return logLevel; }); diff --git a/tests/unit/global_vars/defaults_modules_spec.js b/tests/unit/global_vars/defaults_modules_spec.js index 03879a86..490a2510 100644 --- a/tests/unit/global_vars/defaults_modules_spec.js +++ b/tests/unit/global_vars/defaults_modules_spec.js @@ -1,49 +1,14 @@ const fs = require("fs"); const path = require("path"); -const vm = require("vm"); -const basedir = path.join(__dirname, "../../.."); +const root_path = path.join(__dirname, "../../.."); describe("Default modules set in modules/default/defaultmodules.js", function () { - let sandbox = null; - - beforeAll(function () { - const fileName = "js/app.js"; - const filePath = path.join(basedir, fileName); - const code = fs.readFileSync(filePath); - - sandbox = { - module: {}, - __dirname: path.dirname(filePath), - global: {}, - process: { - on: function () {}, - env: {} - } - }; - - sandbox.require = function (filename) { - // This modifies the global slightly, - // but supplies vm with essential code - if (filename === "logger") { - return require("../mocks/logger.js"); - } else { - try { - return require(filename); - } catch (ignore) { - // ignore - } - } - }; - - vm.runInNewContext(code, sandbox, fileName); - }); - const expectedDefaultModules = require("../../../modules/default/defaultmodules"); for (const defaultModule of expectedDefaultModules) { it(`contains a folder for modules/default/${defaultModule}"`, function () { - expect(fs.existsSync(path.join(sandbox.global.root_path, "modules/default", defaultModule))).toBe(true); + expect(fs.existsSync(path.join(root_path, "modules/default", defaultModule))).toBe(true); }); } }); diff --git a/tests/unit/global_vars/root_path_spec.js b/tests/unit/global_vars/root_path_spec.js index 9dfc3f30..1f86082b 100644 --- a/tests/unit/global_vars/root_path_spec.js +++ b/tests/unit/global_vars/root_path_spec.js @@ -1,49 +1,15 @@ const fs = require("fs"); const path = require("path"); -const vm = require("vm"); + +const root_path = path.join(__dirname, "../../.."); +const version = require(`${__dirname}/../../../package.json`).version; describe("'global.root_path' set in js/app.js", function () { - let sandbox = null; - - beforeAll(function () { - const basedir = path.join(__dirname, "../../.."); - - const fileName = "js/app.js"; - const filePath = path.join(basedir, fileName); - const code = fs.readFileSync(filePath); - - sandbox = { - module: {}, - __dirname: path.dirname(filePath), - global: {}, - process: { - on: function () {}, - env: {} - } - }; - - sandbox.require = function (filename) { - // This modifies the global slightly, - // but supplies vm with essential code - if (filename === "logger") { - return require("../mocks/logger.js"); - } else { - try { - return require(filename); - } catch (ignore) { - // ignore - } - } - }; - - vm.runInNewContext(code, sandbox, fileName); - }); - const expectedSubPaths = ["modules", "serveronly", "js", "js/app.js", "js/main.js", "js/electron.js", "config"]; expectedSubPaths.forEach((subpath) => { it(`contains a file/folder "${subpath}"`, function () { - expect(fs.existsSync(path.join(sandbox.global.root_path, subpath))).toBe(true); + expect(fs.existsSync(path.join(root_path, subpath))).toBe(true); }); }); @@ -57,6 +23,6 @@ describe("'global.root_path' set in js/app.js", function () { it("should expect the global.version equals package.json file", function () { const versionPackage = JSON.parse(fs.readFileSync("package.json", "utf8")).version; - expect(sandbox.global.version).toBe(versionPackage); + expect(version).toBe(versionPackage); }); }); diff --git a/tests/unit/mocks/logger.js b/tests/unit/mocks/logger.js deleted file mode 100644 index 56b5b123..00000000 --- a/tests/unit/mocks/logger.js +++ /dev/null @@ -1,20 +0,0 @@ -(function (root, factory) { - // Node, CommonJS-like - module.exports = factory(root.config); -})(this, function (config) { - let logLevel = { - debug: function () {}, - log: function () {}, - info: function () {}, - warn: function () {}, - error: function () {}, - group: function () {}, - groupCollapsed: function () {}, - groupEnd: function () {}, - time: function () {}, - timeEnd: function () {}, - timeStamp: function () {} - }; - - return logLevel; -});