// @vitest-environment jsdom import { render, screen, waitFor } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { PageHeader } from "../../src/presentation/components/page-header.tsx"; describe("page header focus ownership", () => { it("takes over focus handed off by the route main region", async () => { const { rerender } = render( <>
, ); const main = screen.getByRole("main"); main.focus(); rerender( <>
, ); await waitFor(() => expect( screen.getByRole("heading", { level: 1, name: "Loaded" }), ).toHaveFocus(), ); }); it("does not steal focus from a user-controlled element", () => { const { rerender } = render( <> , ); const menu = screen.getByRole("button", { name: "Menu" }); menu.focus(); rerender( <> , ); expect(menu).toHaveFocus(); }); });