import { render, screen } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { Breadcrumb, BreadcrumbCurrent, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbSeparator } from "./breadcrumb"; describe("Breadcrumb", () => { it("renders semantic navigation, list, items, and current page state", () => { render( Releases Q2 Launch ); expect(screen.getByRole("navigation", { name: "Release path" })).toHaveAttribute( "data-slot", "root" ); expect(screen.getByRole("list")).toHaveAttribute("data-slot", "list"); expect(screen.getByRole("link", { name: "Releases" })).toHaveAttribute("data-slot", "link"); expect(screen.getByText("Q2 Launch")).toHaveAttribute("aria-current", "page"); expect(screen.getByText("Q2 Launch")).toHaveAttribute("data-current", ""); }); it("supports custom separators", () => { render( Runs / run-42 ); expect(screen.getByText("/")).toHaveAttribute("data-slot", "separator"); expect(screen.getByText("/")).toHaveAttribute("aria-hidden", "true"); }); it("supports asChild composition for custom links", () => { render( ); const button = screen.getByRole("button", { name: "Open run" }); expect(button).toHaveAttribute("data-slot", "link"); }); });