fix(e2e): update sidebar selectors for shadcn migration

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Krrish Dholakia 2026-07-07 17:23:04 +00:00
parent 7a774a67a9
commit 666509626b
2 changed files with 10 additions and 9 deletions

View file

@ -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);
}

View file

@ -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();
}