diff --git a/js/electron.js b/js/electron.js index 770f95026b..ceae08c67d 100644 --- a/js/electron.js +++ b/js/electron.js @@ -71,6 +71,11 @@ const createWindow = () => { const electronOptions = Object.assign({}, electronOptionsDefaults, config.electronOptions); + if (process.env.mmTestMode) { + electronOptions.show = false; + electronOptions.fullscreen = false; + } + if (process.env.MOCK_DATE !== undefined) { // if we are running tests and we want to mock the current date const fakeNow = new Date(process.env.MOCK_DATE).valueOf(); @@ -143,9 +148,11 @@ const createWindow = () => { callback({ responseHeaders: curHeaders }); }); - mainWindow.once("ready-to-show", () => { - mainWindow.show(); - }); + if (!process.env.mmTestMode) { + mainWindow.once("ready-to-show", () => { + mainWindow.show(); + }); + } }; // Quit when all windows are closed. diff --git a/tests/configs/modules/display.js b/tests/configs/modules/display.js index d51ae869ac..bec8fbfeee 100644 --- a/tests/configs/modules/display.js +++ b/tests/configs/modules/display.js @@ -1,6 +1,7 @@ const config = { address: "0.0.0.0", ipWhitelist: [], + electronOptions: { width: 640, height: 480, show: true, fullscreen: true }, modules: [ { module: "helloworld", diff --git a/tests/electron/env_spec.js b/tests/electron/env_spec.js index 3351e1af0e..75974a034c 100644 --- a/tests/electron/env_spec.js +++ b/tests/electron/env_spec.js @@ -15,6 +15,13 @@ describe("Electron app environment", () => { const moduleContent = await helpers.getElement("#module_0_helloworld .module-content"); await expect(moduleContent.textContent()).resolves.toContain("Test Display Header"); expect(global.electronApp.windows()).toHaveLength(1); + const windowState = await global.electronApp.evaluate(({ BrowserWindow }) => { + const [window] = BrowserWindow.getAllWindows(); + return { visible: window.isVisible(), fullscreen: window.isFullScreen(), bounds: window.getBounds() }; + }); + expect(windowState.visible).toBe(false); + expect(windowState.fullscreen).toBe(false); + expect(windowState.bounds).toMatchObject({ width: 640, height: 480 }); }); }); @@ -34,5 +41,7 @@ describe("Development console tests", () => { for (const page of pageArray) { expect(["MagicMirror²", "DevTools"]).toContain(await page.title()); } + const visible = await global.electronApp.evaluate(({ BrowserWindow }) => BrowserWindow.getAllWindows().some((window) => window.isVisible())); + expect(visible).toBe(false); }); });