summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2025-10-14 17:54:15 +0200
committerOskar <oskar@mullvad.net>2025-10-14 17:54:15 +0200
commit66d1b4e66ae05913e0fa557ac123758a11f7329d (patch)
tree9df508871591cd4510bfedc0754e1241650c2cbb
parentbac719d9d7a5b27dc906f4a430e7f8812f865647 (diff)
parent6a5e7215c0eb38f56d9ad04b7ee7798f25c81703 (diff)
downloadmullvadvpn-66d1b4e66ae05913e0fa557ac123758a11f7329d.tar.xz
mullvadvpn-66d1b4e66ae05913e0fa557ac123758a11f7329d.zip
Merge branch 'combat-playwright-flakiness'
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/utils.ts15
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) => {