From ee33350a37db85655adb44d55fcd1c9200f04509 Mon Sep 17 00:00:00 2001 From: sam detweiler Date: Mon, 11 Nov 2024 09:04:09 -0600 Subject: [PATCH 1/3] add support for test mode detection in modulename.js via index.html --- CHANGELOG.md | 1 + index.html | 1 + js/app.js | 1 + js/server_functions.js | 1 + tests/e2e/helpers/global-setup.js | 1 + tests/electron/helpers/global-setup.js | 2 ++ 6 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f6856c88d..3a0ddfeeb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ _This release is scheduled to be released on 2025-01-01._ - [linter] re-added `eslint-plugin-import`now that it supports ESLint v9 (#3586) - [docs] Added step for npm publishing in release process (#3595) - [core] Add GitHub workflow to run spellcheck a few days before each release. +- [core] Add intest flag to index.html to pass to module js for test mode detection (needed by #3630) ### Removed diff --git a/index.html b/index.html index 09addfe37f..a868c4ae15 100644 --- a/index.html +++ b/index.html @@ -18,6 +18,7 @@ diff --git a/js/app.js b/js/app.js index 5ab23356ee..fda1b80d55 100644 --- a/js/app.js +++ b/js/app.js @@ -13,6 +13,7 @@ const { getEnvVarsAsObj } = require(`${__dirname}/server_functions`); // Get version number. global.version = require(`${__dirname}/../package.json`).version; +global.intest = process.env.intest ? true : false; Log.log(`Starting MagicMirror: v${global.version}`); // Log system information. diff --git a/js/server_functions.js b/js/server_functions.js index 65928d732e..8f6d6c5f7d 100644 --- a/js/server_functions.js +++ b/js/server_functions.js @@ -109,6 +109,7 @@ function geExpectedReceivedHeaders (url) { function getHtml (req, res) { let html = fs.readFileSync(path.resolve(`${global.root_path}/index.html`), { encoding: "utf8" }); html = html.replace("#VERSION#", global.version); + html = html.replace("#TESTMODE#", global.intest); let configFile = "config/config.js"; if (typeof global.configuration_file !== "undefined") { diff --git a/tests/e2e/helpers/global-setup.js b/tests/e2e/helpers/global-setup.js index ef90c0fdd9..92ca72fb78 100644 --- a/tests/e2e/helpers/global-setup.js +++ b/tests/e2e/helpers/global-setup.js @@ -26,6 +26,7 @@ exports.startApplication = async (configFilename, exec) => { } else { process.env.MM_CONFIG_FILE = configFilename; } + process.env.intest = true; if (exec) exec; global.app = require("../../../js/app"); diff --git a/tests/electron/helpers/global-setup.js b/tests/electron/helpers/global-setup.js index e7f8facafd..bae740b55f 100644 --- a/tests/electron/helpers/global-setup.js +++ b/tests/electron/helpers/global-setup.js @@ -11,6 +11,7 @@ exports.startApplication = async (configFilename, systemDate = null, electronPar if (systemDate) { process.env.MOCK_DATE = systemDate; } + process.env.intest = true; global.electronApp = await electron.launch({ args: electronParams }); @@ -39,6 +40,7 @@ exports.stopApplication = async () => { global.electronApp = null; global.page = null; process.env.MOCK_DATE = undefined; + process.env.jstest = undefined; }; exports.getElement = async (selector) => { From 30f20d67bb520d1809992a56667004051f94d708 Mon Sep 17 00:00:00 2001 From: sam detweiler Date: Tue, 12 Nov 2024 08:01:29 -0600 Subject: [PATCH 2/3] change varibale name from intest to mmTestMode --- index.html | 2 +- js/app.js | 2 +- js/server_functions.js | 2 +- tests/e2e/helpers/global-setup.js | 2 +- tests/electron/helpers/global-setup.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index a868c4ae15..df64a08203 100644 --- a/index.html +++ b/index.html @@ -18,7 +18,7 @@ diff --git a/js/app.js b/js/app.js index fda1b80d55..9d111c7eb9 100644 --- a/js/app.js +++ b/js/app.js @@ -13,7 +13,7 @@ const { getEnvVarsAsObj } = require(`${__dirname}/server_functions`); // Get version number. global.version = require(`${__dirname}/../package.json`).version; -global.intest = process.env.intest ? true : false; +global.mmTestMode = process.env.mmTestMode === "true" ? true : false; Log.log(`Starting MagicMirror: v${global.version}`); // Log system information. diff --git a/js/server_functions.js b/js/server_functions.js index 8f6d6c5f7d..07c6df534c 100644 --- a/js/server_functions.js +++ b/js/server_functions.js @@ -109,7 +109,7 @@ function geExpectedReceivedHeaders (url) { function getHtml (req, res) { let html = fs.readFileSync(path.resolve(`${global.root_path}/index.html`), { encoding: "utf8" }); html = html.replace("#VERSION#", global.version); - html = html.replace("#TESTMODE#", global.intest); + html = html.replace("#TESTMODE#", global.mmTestMode); let configFile = "config/config.js"; if (typeof global.configuration_file !== "undefined") { diff --git a/tests/e2e/helpers/global-setup.js b/tests/e2e/helpers/global-setup.js index 92ca72fb78..3155e747c2 100644 --- a/tests/e2e/helpers/global-setup.js +++ b/tests/e2e/helpers/global-setup.js @@ -26,7 +26,7 @@ exports.startApplication = async (configFilename, exec) => { } else { process.env.MM_CONFIG_FILE = configFilename; } - process.env.intest = true; + process.env.mmTestMode = "true"; if (exec) exec; global.app = require("../../../js/app"); diff --git a/tests/electron/helpers/global-setup.js b/tests/electron/helpers/global-setup.js index bae740b55f..f65c0a5b67 100644 --- a/tests/electron/helpers/global-setup.js +++ b/tests/electron/helpers/global-setup.js @@ -11,7 +11,7 @@ exports.startApplication = async (configFilename, systemDate = null, electronPar if (systemDate) { process.env.MOCK_DATE = systemDate; } - process.env.intest = true; + process.env.mmTestMode = "true"; global.electronApp = await electron.launch({ args: electronParams }); From 8a2a6df43659c78ce801bcf79a06b1e71ed43619 Mon Sep 17 00:00:00 2001 From: sam detweiler Date: Tue, 12 Nov 2024 08:08:23 -0600 Subject: [PATCH 3/3] remove variable in stopApplication --- tests/electron/helpers/global-setup.js | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/electron/helpers/global-setup.js b/tests/electron/helpers/global-setup.js index f65c0a5b67..505cb5e3c0 100644 --- a/tests/electron/helpers/global-setup.js +++ b/tests/electron/helpers/global-setup.js @@ -40,7 +40,6 @@ exports.stopApplication = async () => { global.electronApp = null; global.page = null; process.env.MOCK_DATE = undefined; - process.env.jstest = undefined; }; exports.getElement = async (selector) => {