diff options
| author | Oskar <oskar@mullvad.net> | 2025-10-14 17:54:15 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2025-10-14 17:54:15 +0200 |
| commit | 66d1b4e66ae05913e0fa557ac123758a11f7329d (patch) | |
| tree | 9df508871591cd4510bfedc0754e1241650c2cbb | |
| parent | bac719d9d7a5b27dc906f4a430e7f8812f865647 (diff) | |
| parent | 6a5e7215c0eb38f56d9ad04b7ee7798f25c81703 (diff) | |
| download | mullvadvpn-66d1b4e66ae05913e0fa557ac123758a11f7329d.tar.xz mullvadvpn-66d1b4e66ae05913e0fa557ac123758a11f7329d.zip | |
Merge branch 'combat-playwright-flakiness'
| -rw-r--r-- | desktop/packages/mullvad-vpn/test/e2e/utils.ts | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/desktop/packages/mullvad-vpn/test/e2e/utils.ts b/desktop/packages/mullvad-vpn/test/e2e/utils.ts index 5873a4708b..ff851bd2bd 100644 --- a/desktop/packages/mullvad-vpn/test/e2e/utils.ts +++ b/desktop/packages/mullvad-vpn/test/e2e/utils.ts @@ -57,23 +57,30 @@ function promiseTimeout<T>(promise: Promise<T>): Promise<T | void> { } async function closePage(page: Page) { - await promiseTimeout(page?.close()); + try { + await promiseTimeout(page?.close()); + } catch (e) { + // no-op, if a window failes to close it will be cleaned up automatically by playwright at the + // end of the run. + const error = e as Error; + console.error(`page.close() threw an error: ${error.message}`); + } } function getCurrentRoute(page: Page): Promise<string | null> { - return page.evaluate('window.e2e.location'); + return page.evaluate('window?.e2e?.location ?? null'); } // Returns a promise which resolves when the provided route is reached. async function expectRoute(page: Page, expectedRoute: string): Promise<void> { - await expect.poll(async () => getCurrentRoute(page)).toMatchPath(expectedRoute); + await expect.poll(() => getCurrentRoute(page)).toMatchPath(expectedRoute); } // Returns a promise which resolves when the route changes. async function expectRouteChange(page: Page, trigger: TriggerFn) { const initialRoute = await getCurrentRoute(page); await trigger(); - await expect.poll(async () => getCurrentRoute(page)).not.toMatchPath(initialRoute); + await expect.poll(() => getCurrentRoute(page)).not.toMatchPath(initialRoute); } const getStyleProperty = (locator: Locator, property: string) => { |
