diff options
| author | Oskar <oskar@mullvad.net> | 2025-10-07 17:13:14 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2025-10-08 15:51:29 +0200 |
| commit | ab42e37a92f1dda2daf4968b49937927ad910d9a (patch) | |
| tree | 1e903d6ee5f3752d535d79bdb5118a1c4c35c6df | |
| parent | 5d7d12ea33c88d36f7d2a96903cea41fc6850ad3 (diff) | |
| download | mullvadvpn-ab42e37a92f1dda2daf4968b49937927ad910d9a.tar.xz mullvadvpn-ab42e37a92f1dda2daf4968b49937927ad910d9a.zip | |
Add closePage function
| -rw-r--r-- | desktop/packages/mullvad-vpn/test/e2e/utils.ts | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/utils.ts b/desktop/packages/mullvad-vpn/test/e2e/utils.ts index f912f639cf..5873a4708b 100644 --- a/desktop/packages/mullvad-vpn/test/e2e/utils.ts +++ b/desktop/packages/mullvad-vpn/test/e2e/utils.ts @@ -15,6 +15,7 @@ export interface StartAppResponse { type TriggerFn = () => Promise<void> | void; export interface TestUtils { + closePage: () => Promise<void>; getCurrentRoute: () => Promise<string | null>; expectRoute: (route: string) => Promise<void>; expectRouteChange: (trigger: TriggerFn) => Promise<void>; @@ -30,12 +31,13 @@ export const startApp = async (options: LaunchOptions): Promise<StartAppResponse await page.emulateMedia({ reducedMotion: 'reduce' }); } - await page.waitForEvent('load'); + await promiseTimeout(page.waitForEvent('load')); page.on('pageerror', (error) => console.log(error)); page.on('console', (msg) => console.log(msg.text())); const util: TestUtils = { + closePage: () => closePage(page), getCurrentRoute: () => getCurrentRoute(page), expectRoute: (route: string) => expectRoute(page, route), expectRouteChange: (trigger: TriggerFn) => expectRouteChange(page, trigger), @@ -49,6 +51,15 @@ export const launch = (options: LaunchOptions): Promise<ElectronApplication> => return electron.launch(options); }; +function promiseTimeout<T>(promise: Promise<T>): Promise<T | void> { + const timeoutPromise = new Promise<void>((resolve) => setTimeout(resolve, 1000)); + return Promise.any([timeoutPromise, promise]); +} + +async function closePage(page: Page) { + await promiseTimeout(page?.close()); +} + function getCurrentRoute(page: Page): Promise<string | null> { return page.evaluate('window.e2e.location'); } |
