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