diff --git a/ui/litellm-dashboard/e2e_tests/tests/internal-viewer/internalViewer.spec.ts b/ui/litellm-dashboard/e2e_tests/tests/internal-viewer/internalViewer.spec.ts index 4de86c46398..8e7758da460 100644 --- a/ui/litellm-dashboard/e2e_tests/tests/internal-viewer/internalViewer.spec.ts +++ b/ui/litellm-dashboard/e2e_tests/tests/internal-viewer/internalViewer.spec.ts @@ -37,7 +37,7 @@ test.describe("Internal Viewer", () => { ]; for (const label of expectedVisible) { await expect( - nav.getByRole("link", { name: label, exact: true }).first(), + nav.getByRole("menuitem", { name: label, exact: true }).first(), `expected nav item "${label}" to render for Internal Viewer`, ).toBeVisible({ timeout: 5_000 }); } @@ -46,7 +46,7 @@ test.describe("Internal Viewer", () => { const expectedHidden = ["Internal Users", "Organizations", "Models + Endpoints"]; for (const label of expectedHidden) { await expect( - nav.getByRole("link", { name: label, exact: true }), + nav.getByRole("menuitem", { name: label, exact: true }), `nav item "${label}" must not render for Internal Viewer`, ).toHaveCount(0); } diff --git a/ui/litellm-dashboard/e2e_tests/tests/migration/migratedPages.spec.ts b/ui/litellm-dashboard/e2e_tests/tests/migration/migratedPages.spec.ts index 0a3be326e42..0b01ca5d280 100644 --- a/ui/litellm-dashboard/e2e_tests/tests/migration/migratedPages.spec.ts +++ b/ui/litellm-dashboard/e2e_tests/tests/migration/migratedPages.spec.ts @@ -17,7 +17,7 @@ const ROOT = process.env.SERVER_ROOT_PATH ?? ""; const esc = (s: string) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); const pathRe = (segment: string) => new RegExp(`${esc(ROOT)}/ui/${esc(segment)}/?($|\\?)`); -const virtualKeysLink = (page: Page) => page.getByRole("link", { name: "Virtual Keys", exact: true }); +const virtualKeysLink = (page: Page) => page.getByRole("menuitem", { name: "Virtual Keys", exact: true }); /** The dashboard shell is present (sidebar rendered); page didn't 404 / crash. */ async function expectRendered(page: Page) { @@ -31,12 +31,13 @@ async function expectRendered(page: Page) { async function clickSidebar(page: Page, segment: string) { const link = page.locator(`a[href$="/ui/${segment}"]`).first(); for (let i = 0; i < 8 && !(await link.isVisible().catch(() => false)); i++) { - const collapsedSubmenu = page - .locator(".ant-menu-submenu:not(.ant-menu-submenu-open) > .ant-menu-submenu-title") - .first(); - if (!(await collapsedSubmenu.isVisible().catch(() => false))) break; - await collapsedSubmenu.click(); - await page.waitForTimeout(250); + const closedCollapsible = page.locator('[data-state="closed"] > button[role="menuitem"]').first(); + if (await closedCollapsible.isVisible().catch(() => false)) { + await closedCollapsible.click(); + await page.waitForTimeout(250); + continue; + } + break; } await link.click(); }