// @vitest-environment jsdom import { render, screen } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { CollectionPage, DetailPage, FormPage, StandardPage, StatusPage, } from "../../src/presentation/templates/index.ts"; describe("page template slot contracts", () => { it("renders StandardPage minimum and full landmarks with one h1", () => { const { rerender } = render( Content, ); expect(screen.getByRole("heading", { level: 1, name: "Minimum" })).toBeVisible(); rerender( Home} status={Ready} actions={[ { kind: "button", label: "Action", onAction: () => {} }, ]} notices={

Notice

} feedback={

Refreshing

} aside={

Aside

} > Content
, ); expect(screen.getAllByRole("heading", { level: 1 })).toHaveLength(1); expect(screen.getByRole("navigation", { name: "현재 위치" })).toBeVisible(); expect(screen.getByRole("complementary", { name: "관련 정보" })).toBeVisible(); }); it("places collection, detail and form state in stable slots", () => { const { rerender } = render( Filter} resultCount="12 results" pagination={Next} > Results , ); expect(screen.getByRole("region", { name: "검색과 필터" })).toBeVisible(); expect(screen.getByRole("navigation", { name: "페이지 탐색" })).toBeVisible(); rerender(
ID
1
} destructiveAction={} > Sections
, ); expect(screen.getByRole("region", { name: "요약 정보" })).toBeVisible(); expect(screen.getByRole("region", { name: "위험 작업" })).toBeVisible(); rerender( Invalid

} fields={} formActions={} />, ); expect(screen.getByRole("alert")).toBeVisible(); expect(screen.getByRole("textbox", { name: "Field" })).toBeVisible(); }); it("renders safe status variants without raw failure values", () => { render( {} }} supportReference="SAFE-123" />, ); expect(screen.getByRole("heading", { level: 1, name: "Offline" })).toBeVisible(); expect(screen.getByText(/SAFE-123/)).toBeVisible(); expect(document.body).not.toHaveTextContent("stack"); }); });