litellm/ui/litellm-dashboard/e2e_tests/tests/migration
Yuneng Jiang 87d979d399
fix(ui): keep the account menu in agent-plane mode and update e2e for the new sidebar
The redesigned sidebar + header shell is now scoped to the ai-gateway dashboard. Agent-control-plane (plugin) mode falls back to the original full-width Navbar, which carries the account menu, so preferences and sign-out stay reachable there; Chat and the public model hub already use that Navbar

Update the e2e specs the antd Menu -> shadcn nav swap broke. Sidebar items are now links/buttons rather than antd menuitems, and the top bar renders a breadcrumb whose current-page item is also a "Virtual Keys" link, so the migration and navigation smoke checks now scope their sidebar lookups to the complementary landmark and expand the new collapsible groups by data-slot. Also harden the collapsed-rail unit test to assert the icon and link rather than the CSS-hidden label
2026-07-10 11:51:23 -07:00
..
migratedPages.spec.ts fix(ui): keep the account menu in agent-plane mode and update e2e for the new sidebar 2026-07-10 11:51:23 -07:00
README.md test(ui): data-driven App Router migration E2E smoke (default + server-root-path) (#29974) 2026-06-09 10:40:01 -07:00

App Router migration smoke

A growing E2E smoke for pages migrated from the legacy ?page= switch to App Router path routes. For each migrated page it clicks the page's sidebar link, checks the URL is the path route and the page renders, reloads it, then clicks off to a legacy page and back to confirm navigation still works. It runs in two situations: the default mount and a non-root SERVER_ROOT_PATH mount.

Adding a page

When a page's migration merges, add its route segment to e2e_tests/fixtures/migratedPages.ts (keep it in lockstep with MIGRATED_PAGES in src/utils/migratedPages.ts). Both suites pick it up automatically.

Running

Build the UI into the proxy and start the proxy first (the suite runs against http://localhost:4000).

Default mount:

npm run e2e:migration

Non-root mount (build and boot the proxy with the same root path, e.g. /litellm):

SERVER_ROOT_PATH=/litellm npm run e2e:migration:root

globalSetup logs in once per role; the admin storage state is reused for these tests. Under a non-root mount it logs in at ${SERVER_ROOT_PATH}/ui/login.