litellm/ui/litellm-dashboard/e2e_tests
yuneng-jiang e35f5d2b73
feat(ui): rebuild the Teams table on the shared DataTable (#33128)
* feat(ui): rebuild the Teams table on the shared DataTable

The Your Teams tab moves off the Ant Design table onto the shared DataTable that the Virtual Keys page uses, following the new dashboard design. It gains server-side sort, pagination and filtering, a toolbar with a filter drawer and a columns menu, and a per-row actions menu

Sorting is wired only to the columns /v2/team/list can actually order by (team_alias, created_at); Spend / Budget and Updated stay unsorted because the endpoint silently ignores those fields. The design's "Created by" column is dropped since the team object has no such field, and the drawer's "Has keys" filter is dropped for the same reason. The Resources cell shows members, models and keys as colored pills, and the actions menu keeps the existing Edit, Copy team ID and Delete behaviors, with Edit and Delete gated to Admin

The teams grid gets its own unit tests in TeamsPage/TeamsTable.test.tsx. Teams.tsx keeps the create-team modal, delete modal, detail view and tabs, now refreshing the list through React Query invalidation instead of a manual refetch

* fix(ui): match Teams loading skeletons to the rendered row height

The default twoLine and chips skeleton shapes rendered the Team and Resources cells shorter than the loaded row (a real row measures 55px, the old skeleton ~49px), so the loading state looked visibly squat. Give the Team column a custom renderSkeleton that mirrors the two-line IdentityCell (measured 54px) and the Resources column one that mirrors the pills, and mark the hidden Rate Limits column as two-line so it matches when shown

* fix(ui): keep team admins' Members tab by deriving is_team_admin from the selected team

The redesign computed is_team_admin from useTeam(selectedTeamId), but that hook returns teamInfoCall's nested { team_info: { members_with_roles } } shape, so the top-level members_with_roles read was always undefined and is_team_admin was always false. For a non-proxy-admin team admin that hid the Members, Member Permissions and Settings tabs in the team detail view, which broke the team-admin add/remove member e2e tests. Pass the Team object up from the table instead (/v2/team/list returns it with a top-level members_with_roles), matching the pre-redesign behavior; proxy admins were unaffected because is_proxy_admin already granted access

Also point the Delete-a-team e2e at the new kebab: open the row actions menu, then click Delete team, rather than clicking the old inline delete icon
2026-07-13 17:47:14 -07:00
..
fixtures feat(ui): migrate api-keys landing to App Router path route (#30699) 2026-06-18 17:38:07 -07:00
helpers fix: show and allow editing team model aliases after team creation (#33047) 2026-07-13 09:31:10 -07:00
tests feat(ui): rebuild the Teams table on the shared DataTable (#33128) 2026-07-13 17:47:14 -07:00
constants.ts test(e2e): assert internal-user navbar identity is scoped to that user (#29077) 2026-05-30 00:29:30 -07:00
globalSetup.ts test(ui): scrub stale return-url cookie from e2e storageState (#30317) 2026-06-22 18:11:05 -07:00
migration.serverRootPath.config.ts chore(ui): remove unused dep, delete dead file, and unblock knip (#31933) 2026-07-01 20:13:58 -07:00
migration.serverRootPath.globalSetup.ts chore(ui): remove unused dep, delete dead file, and unblock knip (#31933) 2026-07-01 20:13:58 -07:00
playwright.config.ts style(ui): run prettier --write across the dashboard (#29622) 2026-06-04 11:37:54 -07:00
run_e2e.sh test(e2e): cover PROXY_LOGOUT_URL redirect on Logout (#29080) 2026-05-30 18:19:04 -07:00
serverRootPath.config.ts refactor(ui): extract auth state into AuthContext (#28910) 2026-05-26 17:53:03 -07:00