From c7579492573fb276d3886a3077118b58b8521a7c Mon Sep 17 00:00:00 2001 From: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com> Date: Wed, 6 May 2026 23:08:13 +0200 Subject: [PATCH 1/2] refactor(quality): add missing return in fnTest (CodeQL #24) --- js/class.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/class.js b/js/class.js index 9cfeee4ceb..f0196d5aee 100644 --- a/js/class.js +++ b/js/class.js @@ -11,7 +11,7 @@ (function () { let initializing = false; const fnTest = (/xyz/).test(function () { - xyz; + return xyz; }) ? /\b_super\b/ : /.*/; From 5e3cfe2dcca2aea60a212f886202dd299deec9a8 Mon Sep 17 00:00:00 2001 From: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com> Date: Wed, 6 May 2026 23:08:13 +0200 Subject: [PATCH 2/2] fix(e2e): MM_PORT env variable was silently ignored in port test (CodeQL #26) startApplication hardcoded port 8080, so the "MM_PORT override" test was actually testing port 8080 all along and passing for the wrong reason. Also removes the dead exec callback that masked the issue. --- tests/e2e/helpers/global-setup.js | 10 +++++----- tests/e2e/port_spec.js | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/e2e/helpers/global-setup.js b/tests/e2e/helpers/global-setup.js index 8bbb810b7b..01e20fff5e 100644 --- a/tests/e2e/helpers/global-setup.js +++ b/tests/e2e/helpers/global-setup.js @@ -88,7 +88,7 @@ exports.getPage = () => { return page; }; -exports.startApplication = async (configFilename, exec) => { +exports.startApplication = async (configFilename) => { vi.resetModules(); // Clear Node's require cache for config and app files to prevent stale configs and middlewares @@ -107,8 +107,8 @@ exports.startApplication = async (configFilename, exec) => { await exports.stopApplication(); } - // Use fixed port 8080 (tests run sequentially, no conflicts) - const port = 8080; + // Use MM_PORT if preset by a test, otherwise default to 8080. + const port = Number(process.env.MM_PORT) || 8080; global.testPort = port; // Set config sample for use in test @@ -121,12 +121,11 @@ exports.startApplication = async (configFilename, exec) => { process.env.MM_CONFIG_FILE = configPath; - // Override port in config - MUST be set before app loads + // Ensure MM_PORT is set before app loads process.env.MM_PORT = port.toString(); process.env.mmTestMode = "true"; process.setMaxListeners(0); - if (exec) exec; global.app = require(`${global.root_path}/js/app`); return global.app.start(); @@ -143,6 +142,7 @@ exports.stopApplication = async (waitTime = 100) => { await global.app.stop(); delete global.app; delete global.testPort; + delete process.env.MM_PORT; // Wait for any pending async operations to complete before closing DOM await new Promise((resolve) => setTimeout(resolve, waitTime)); diff --git a/tests/e2e/port_spec.js b/tests/e2e/port_spec.js index a64ac568b1..341becc76b 100644 --- a/tests/e2e/port_spec.js +++ b/tests/e2e/port_spec.js @@ -11,15 +11,15 @@ describe("port directive configuration", () => { }); it("should return 200", async () => { - const port = global.testPort || 8080; - const res = await fetch(`http://localhost:${port}`); + const res = await fetch(`http://localhost:${global.testPort}`); expect(res.status).toBe(200); }); }); describe("Set port 8100 on environment variable MM_PORT", () => { beforeAll(async () => { - await helpers.startApplication("tests/configs/port_8090.js", (process.env.MM_PORT = 8100)); + process.env.MM_PORT = "8100"; + await helpers.startApplication("tests/configs/port_8090.js"); }); afterAll(async () => { @@ -27,8 +27,8 @@ describe("port directive configuration", () => { }); it("should return 200", async () => { - const port = global.testPort || 8080; - const res = await fetch(`http://localhost:${port}`); + expect(global.testPort).toBe(8100); + const res = await fetch(`http://localhost:${global.testPort}`); expect(res.status).toBe(200); }); });