From 56cb536df12acfdc598a337f2c4f728ffb53068e Mon Sep 17 00:00:00 2001 From: sam detweiler Date: Tue, 12 Nov 2024 08:58:36 -0600 Subject: [PATCH] add support for test mode detection in modulename.js via index.html (#3631) in some cases the modulename.js may need to detect running in test mode (compliments pr #3630) window.name is not set web mode add a new field to the index.html window.intest and use the server_function to replace the hard coded string like we do for window.mmversion=#VERSION# then change the two test helpers to set the env variable app.js detects and sets global.intest=true server func replace with value of global.intest then module can use if(window.intest) --- 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 | 1 + 6 files changed, 6 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..df64a08203 100644 --- a/index.html +++ b/index.html @@ -18,6 +18,7 @@ diff --git a/js/app.js b/js/app.js index 5ab23356ee..9d111c7eb9 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.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 65928d732e..07c6df534c 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.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 ef90c0fdd9..3155e747c2 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.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 e7f8facafd..505cb5e3c0 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.mmTestMode = "true"; global.electronApp = await electron.launch({ args: electronParams });