From 4b4c8ba42331a7261434512d1a57fdd8f6471c4a Mon Sep 17 00:00:00 2001 From: ryan-crabbe-berri Date: Mon, 8 Jun 2026 14:43:10 -0700 Subject: [PATCH] test(ui): assert migrated playground path route in sidebar e2e The playground migration moved LLM Playground from the legacy ?page=llm-playground switch to the /ui/playground/ path route, but sidebar.spec.ts still asserted the query-param URL, so both clicking the sidebar item and the direct-nav helper failed. Drive the expected URL off a small migrated-segment map (mirroring MIGRATED_PAGES) so migrated pages assert their path route while legacy pages keep ?page= --- .../tests/navigation/sidebar.spec.ts | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/ui/litellm-dashboard/e2e_tests/tests/navigation/sidebar.spec.ts b/ui/litellm-dashboard/e2e_tests/tests/navigation/sidebar.spec.ts index b8fb95b764d..474be30899b 100644 --- a/ui/litellm-dashboard/e2e_tests/tests/navigation/sidebar.spec.ts +++ b/ui/litellm-dashboard/e2e_tests/tests/navigation/sidebar.spec.ts @@ -9,6 +9,17 @@ const sidebarButtons = { [Role.ProxyAdmin]: ["Virtual Keys", "Playground", "Models", "Usage", "Teams", "Internal Users", "AI Hub"], }; +// Route segment for pages migrated to path routes; mirror of MIGRATED_PAGES in src/utils/migratedPages.ts. +const migratedPageSegments: Partial> = { + [Page.ApiRef]: "api-reference", + [Page.LlmPlayground]: "playground", +}; + +function expectedUrlPattern(pageKey: Page): RegExp { + const segment = migratedPageSegments[pageKey]; + return segment ? new RegExp(`/ui/${segment}/?($|\\?)`) : new RegExp(`[?&]page=${pageKey}(&|$)`); +} + const roles = [{ role: Role.ProxyAdmin, storage: ADMIN_STORAGE_PATH }]; for (const { role, storage } of roles) { @@ -35,8 +46,7 @@ for (const { role, storage } of roles) { await tab.click(); - // Verify URL contains the correct page query parameter - await expect(page).toHaveURL(new RegExp(`[?&]page=${expectedPage}(&|$)`)); + await expect(page).toHaveURL(expectedUrlPattern(expectedPage)); } }); @@ -50,13 +60,13 @@ for (const { role, storage } of roles) { // Test direct navigation to verify the helper function works await navigateToPage(page, Page.ApiKeys); - await expect(page).toHaveURL(new RegExp(`[?&]page=${Page.ApiKeys}(&|$)`)); + await expect(page).toHaveURL(expectedUrlPattern(Page.ApiKeys)); await navigateToPage(page, Page.Models); - await expect(page).toHaveURL(new RegExp(`[?&]page=${Page.Models}(&|$)`)); + await expect(page).toHaveURL(expectedUrlPattern(Page.Models)); await navigateToPage(page, Page.LlmPlayground); - await expect(page).toHaveURL(new RegExp(`[?&]page=${Page.LlmPlayground}(&|$)`)); + await expect(page).toHaveURL(expectedUrlPattern(Page.LlmPlayground)); }); }); }