From c8c88a274f35365b8bbc93789fa9de1ca83a69f2 Mon Sep 17 00:00:00 2001 From: Devin Binnie <52460000+devinbinnie@users.noreply.github.com> Date: Wed, 18 Jan 2023 05:11:11 -0500 Subject: [PATCH] [MM-49724] More robust check for startup before starting E2E tests (#2504) * [MM-49724] More robust check for startup before starting E2E tests * Fix a few more tests --- e2e/modules/environment.js | 18 +++++++++--------- e2e/specs/popup.test.js | 4 ++-- src/main/app/intercom.ts | 12 ++++++++++++ src/main/windows/windowManager.ts | 4 ++++ 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/e2e/modules/environment.js b/e2e/modules/environment.js index 77fa7b56..799d0f2a 100644 --- a/e2e/modules/environment.js +++ b/e2e/modules/environment.js @@ -214,16 +214,16 @@ module.exports = { // // this changes the default debugging port so chromedriver can run without issues. // options.chromeDriverArgs.push('remote-debugging-port=9222'); //} - return electron.launch(options).then(async (app) => { - // Make sure the app has time to fully load and that the window is focused - await asyncSleep(1000); - const mainWindow = app.windows().find((window) => window.url().includes('index')); - const browserWindow = await app.browserWindow(mainWindow); - await browserWindow.evaluate((win) => { - win.show(); - return true; + return electron.launch(options).then(async (eapp) => { + await eapp.evaluate(async ({app}) => { + const promise = new Promise((resolve) => { + app.on('e2e-app-loaded', () => { + resolve(); + }); + }); + return promise; }); - return app; + return eapp; }); }, diff --git a/e2e/specs/popup.test.js b/e2e/specs/popup.test.js index 1d4a1420..d5fdf832 100644 --- a/e2e/specs/popup.test.js +++ b/e2e/specs/popup.test.js @@ -44,7 +44,7 @@ describe('popup', function desc() { await firstServer.click('#sidebarItem_suscipit-4'); await firstServer.click('#post_textbox'); await firstServer.type('#post_textbox', '/github connect '); - await firstServer.press('#post_textbox', 'Enter'); + await firstServer.click('button[data-testid="SendMessageButton"]'); const githubLink = await firstServer.waitForSelector('a.theme.markdown__link:has-text("GitHub account")'); githubLink.click(); @@ -100,7 +100,7 @@ describe('popup', function desc() { await firstServer.click('#sidebarItem_suscipit-4'); await firstServer.click('#post_textbox'); await firstServer.type('#post_textbox', '/github connect '); - await firstServer.press('#post_textbox', 'Enter'); + await firstServer.click('button[data-testid="SendMessageButton"]'); const githubLink = await firstServer.waitForSelector('a.theme.markdown__link:has-text("GitHub account")'); githubLink.click(); diff --git a/src/main/app/intercom.ts b/src/main/app/intercom.ts index abbf1005..9040fcf6 100644 --- a/src/main/app/intercom.ts +++ b/src/main/app/intercom.ts @@ -92,6 +92,18 @@ export function handleShowOnboardingScreens(showWelcomeScreen: boolean, showNewS const showWelcomeScreenFunc = () => { if (showWelcomeScreen) { handleWelcomeScreenModal(); + + if (process.env.NODE_ENV === 'test') { + const welcomeScreen = ModalManager.modalQueue.find((modal) => modal.key === 'welcomeScreen'); + if (welcomeScreen?.view.webContents.isLoading()) { + welcomeScreen?.view.webContents.once('did-finish-load', () => { + app.emit('e2e-app-loaded'); + }); + } else { + app.emit('e2e-app-loaded'); + } + } + return; } if (showNewServerModal) { diff --git a/src/main/windows/windowManager.ts b/src/main/windows/windowManager.ts index 3e514130..78b52aa7 100644 --- a/src/main/windows/windowManager.ts +++ b/src/main/windows/windowManager.ts @@ -667,6 +667,10 @@ export class WindowManager { if (this.viewManager) { this.viewManager.hideLoadingScreen(); } + + if (process.env.NODE_ENV === 'test') { + app.emit('e2e-app-loaded'); + } } updateLoadingScreenDarkMode = (darkMode: boolean) => {