summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2025-10-07 17:13:14 +0200
committerOskar <oskar@mullvad.net>2025-10-08 15:51:29 +0200
commitab42e37a92f1dda2daf4968b49937927ad910d9a (patch)
tree1e903d6ee5f3752d535d79bdb5118a1c4c35c6df
parent5d7d12ea33c88d36f7d2a96903cea41fc6850ad3 (diff)
downloadmullvadvpn-ab42e37a92f1dda2daf4968b49937927ad910d9a.tar.xz
mullvadvpn-ab42e37a92f1dda2daf4968b49937927ad910d9a.zip
Add closePage function
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/utils.ts13
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');
}