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)
This commit is contained in:
sam detweiler 2024-11-12 08:58:36 -06:00 committed by GitHub
parent 4259d7c075
commit 56cb536df1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 6 additions and 0 deletions

View File

@ -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

View File

@ -18,6 +18,7 @@
<script type="text/javascript">
window.mmVersion = "#VERSION#";
window.mmTestMode = "#TESTMODE#";
</script>
</head>
<body>

View File

@ -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.

View File

@ -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") {

View File

@ -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");

View File

@ -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 });