From 9f38f7f87bdb33652c4ca2601ced253f155e0b41 Mon Sep 17 00:00:00 2001 From: Henry Heino Date: Wed, 16 Oct 2024 19:16:51 -0700 Subject: [PATCH 1/2] Chore: Desktop: Wait for plugins to load before running certain plugin-related tests --- .../integration-tests/settings.spec.ts | 3 ++- .../integration-tests/util/test.ts | 20 +++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/app-desktop/integration-tests/settings.spec.ts b/packages/app-desktop/integration-tests/settings.spec.ts index 44f2415d083..be64823605b 100644 --- a/packages/app-desktop/integration-tests/settings.spec.ts +++ b/packages/app-desktop/integration-tests/settings.spec.ts @@ -3,9 +3,10 @@ import MainScreen from './models/MainScreen'; import SettingsScreen from './models/SettingsScreen'; test.describe('settings', () => { - test('should be possible to remove sort order buttons in settings', async ({ electronApp, mainWindow }) => { + test('should be possible to remove sort order buttons in settings', async ({ electronApp, mainWindow, startupPluginsLoaded }) => { const mainScreen = new MainScreen(mainWindow); await mainScreen.waitFor(); + await startupPluginsLoaded; // Sort order buttons should be visible by default const sortOrderLocator = mainScreen.noteList.sortOrderButton; diff --git a/packages/app-desktop/integration-tests/util/test.ts b/packages/app-desktop/integration-tests/util/test.ts index 93729bed53e..c40e5cdaca7 100644 --- a/packages/app-desktop/integration-tests/util/test.ts +++ b/packages/app-desktop/integration-tests/util/test.ts @@ -31,6 +31,14 @@ const getAndResizeMainWindow = async (electronApp: ElectronApplication) => { return mainWindow; }; +const waitForStartupPlugins = async (electronApp: ElectronApplication) => { + return electronApp.evaluate(({ ipcMain }) => { + return new Promise(resolve => { + ipcMain.once('startup-plugins-loaded', () => resolve()); + }); + }); +}; + const testDir = dirname(__dirname); export const test = base.extend({ @@ -75,10 +83,12 @@ export const test = base.extend({ pluginPaths.map(path => resolve(testDir, path)).join(','), ], }); + const mainWindowPromise = getAndResizeMainWindow(electronApp); + await waitForStartupPlugins(electronApp); return { app: electronApp, - mainWindow: await getAndResizeMainWindow(electronApp), + mainWindow: await mainWindowPromise, }; }); @@ -89,13 +99,7 @@ export const test = base.extend({ }, startupPluginsLoaded: async ({ electronApp }, use) => { - const startupPluginsLoadedPromise = electronApp.evaluate(({ ipcMain }) => { - return new Promise(resolve => { - ipcMain.once('startup-plugins-loaded', () => resolve()); - }); - }); - - await use(startupPluginsLoadedPromise); + await use(waitForStartupPlugins(electronApp)); }, mainWindow: async ({ electronApp }, use) => { From a1d7e4ff85b43a3464566b9485ada267ec7e1567 Mon Sep 17 00:00:00 2001 From: Henry Heino Date: Thu, 24 Oct 2024 09:37:26 -0700 Subject: [PATCH 2/2] Move await startupPluginsLoaded to correct settings.spec.ts test --- packages/app-desktop/integration-tests/settings.spec.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/app-desktop/integration-tests/settings.spec.ts b/packages/app-desktop/integration-tests/settings.spec.ts index be64823605b..c5974f8885e 100644 --- a/packages/app-desktop/integration-tests/settings.spec.ts +++ b/packages/app-desktop/integration-tests/settings.spec.ts @@ -3,10 +3,9 @@ import MainScreen from './models/MainScreen'; import SettingsScreen from './models/SettingsScreen'; test.describe('settings', () => { - test('should be possible to remove sort order buttons in settings', async ({ electronApp, mainWindow, startupPluginsLoaded }) => { + test('should be possible to remove sort order buttons in settings', async ({ electronApp, mainWindow }) => { const mainScreen = new MainScreen(mainWindow); await mainScreen.waitFor(); - await startupPluginsLoaded; // Sort order buttons should be visible by default const sortOrderLocator = mainScreen.noteList.sortOrderButton; @@ -52,8 +51,10 @@ test.describe('settings', () => { await expect(mainScreen.dialog).toBeVisible(); }); - test('should be possible to navigate settings screen tabs with the arrow keys', async ({ electronApp, mainWindow }) => { + test('should be possible to navigate settings screen tabs with the arrow keys', async ({ electronApp, mainWindow, startupPluginsLoaded }) => { const mainScreen = new MainScreen(mainWindow); + await startupPluginsLoaded; + await mainScreen.waitFor(); await mainScreen.openSettings(electronApp);