From 9fc53148e17794d7f841aa0aad3f1113e8e6cf4e Mon Sep 17 00:00:00 2001 From: ryan-crabbe-berri Date: Fri, 12 Jun 2026 15:23:36 -0700 Subject: [PATCH] test(ui): scrub stale return-url cookie from e2e storageState The login flow stores a post-login return URL in the litellm_return_url cookie (5 minute TTL). globalSetup snapshots cookies into the per-role storageState that every spec reuses, so when the snapshot races ahead of the app consuming that cookie, each test inheriting it gets redirected to the stale URL (/ui/?login=success) mid-assertion the first time it mounts a page. That one rogue navigation is behind the recurring e2e failures whose call logs all show "navigated to /ui/?login=success" while waiting for an element; which specs die varies run to run with snapshot timing. Clear the cookie right before saving the snapshot so no test starts with a pending redirect. --- ui/litellm-dashboard/e2e_tests/globalSetup.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ui/litellm-dashboard/e2e_tests/globalSetup.ts b/ui/litellm-dashboard/e2e_tests/globalSetup.ts index 661155b761f1..ef892870268f 100644 --- a/ui/litellm-dashboard/e2e_tests/globalSetup.ts +++ b/ui/litellm-dashboard/e2e_tests/globalSetup.ts @@ -39,6 +39,11 @@ async function globalSetup() { if (await dismiss.isVisible({ timeout: 1_500 }).catch(() => false)) { await dismiss.click(); } + // The login flow stores a post-login return URL in the litellm_return_url + // cookie. If the snapshot captures it before the app consumes it, every + // test inheriting this storageState gets yanked to that stale URL the + // first time it mounts a page (the e2e suite's main flake source). + await page.context().clearCookies({ name: "litellm_return_url" }); await page.context().storageState({ path: storagePath }); } catch (e) { fs.mkdirSync("test-results", { recursive: true });