From 92074571c8c5de88fe748b1b41398ddd2cbaafbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Malte=20Lauk=C3=B6tter?= Date: Fri, 14 Feb 2025 09:09:58 +0100 Subject: [PATCH] Wait for token request to finish after login in e2e-test Our e2e-tests are currently flaky while logging in due to the following error: Error "apiRequestContext.fetch: Target page, context or browser has been closed" while running route callback. This then leads to errors in all other tests as the token file is not created: ENOENT: no such file or directory, open '[...]/e2e/storage/token.json' To (hopefully) fix this we wait for all route-handlers to finish their processing before closing the browser. RISDEV-0000 --- frontend/e2e/globalSetup/login-and-create-sample-data.setup.ts | 3 +++ frontend/e2e/utils/test-with-auth.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/e2e/globalSetup/login-and-create-sample-data.setup.ts b/frontend/e2e/globalSetup/login-and-create-sample-data.setup.ts index e43df3800..76690a43a 100644 --- a/frontend/e2e/globalSetup/login-and-create-sample-data.setup.ts +++ b/frontend/e2e/globalSetup/login-and-create-sample-data.setup.ts @@ -16,6 +16,9 @@ setup("login", async ({ page }) => { await page.getByRole("button", { name: "Sign In" }).click() await page.context().storageState({ path: `e2e/storage/state.json` }) + + await page.waitForURL("/") + await page.unrouteAll({ behavior: "wait" }) }) setup("create sample data", async ({ authenticatedRequest: request }) => { diff --git a/frontend/e2e/utils/test-with-auth.ts b/frontend/e2e/utils/test-with-auth.ts index 722cfea45..54a870d89 100644 --- a/frontend/e2e/utils/test-with-auth.ts +++ b/frontend/e2e/utils/test-with-auth.ts @@ -41,7 +41,7 @@ export const test = base.extend<{ async ({ page }, use) => { await page.route(/token$/, async (route) => { const response = await page.request.fetch(route.request()) - if (response.ok()) saveToken(await response.json()) + if (response.ok()) await saveToken(await response.json()) await route.fulfill({ response }) })