test(ui): query the clear button and the models page tabs through accessible screen queries

This commit is contained in:
ryan-crabbe-berri 2026-09-01 16:04:45 -07:00
parent 4acc1d15fb
commit 1964d92fc6
2 changed files with 6 additions and 6 deletions

View file

@ -111,17 +111,17 @@ describe("ModelsAndEndpointsPage", () => {
// POST /model/new 403s a proxy_admin_viewer, so the form's tab must not render for one.
it("hides the Add Model tab for a view-only admin session", () => {
mockUseAuthorized.mockReturnValue(VIEW_ONLY_ADMIN);
const { getByRole, queryByRole } = renderPage();
expect(queryByRole("tab", { name: "Add Model" })).not.toBeInTheDocument();
expect(getByRole("tab", { name: "All Models" })).toBeInTheDocument();
renderPage();
expect(screen.queryByRole("tab", { name: "Add Model" })).not.toBeInTheDocument();
expect(screen.getByRole("tab", { name: "All Models" })).toBeInTheDocument();
});
// Read parity: the Auto-Routers list stays reachable for a view-only admin; only the
// create affordance inside it is withheld, which AutoRoutersTabPanel decides.
it("keeps the Auto-Routers tab for a view-only admin session", () => {
mockUseAuthorized.mockReturnValue(VIEW_ONLY_ADMIN);
const { getByRole } = renderPage();
expect(getByRole("tab", { name: /Auto-Routers/ })).toBeInTheDocument();
renderPage();
expect(screen.getByRole("tab", { name: /Auto-Routers/ })).toBeInTheDocument();
});
// Auto-routers are excluded from the All Models table, so this tab is their home: the only

View file

@ -40,7 +40,7 @@ describe("TeamDropdown", () => {
const onTeamSelect = vi.fn();
render(<TeamDropdown value="team-1" onChange={onChange} onTeamSelect={onTeamSelect} />);
await user.click(document.querySelector('[data-slot="combobox-clear"]') as HTMLElement);
await user.click(screen.getByRole("button", { name: "Clear" }));
expect(onChange).toHaveBeenCalledWith(null);
expect(onTeamSelect).toHaveBeenCalledWith(null);