import {
cleanup,
render,
screen,
} from "@testing-library/react";
import assert from "node:assert";
import {
afterEach,
describe,
test,
} from "node:test";
import { Breadcrumbs } from "./index";
describe("Breadcrumbs", () => {
afterEach(() => {
cleanup();
});
test("renders breadcrumb navigation with items", () => {
render(
);
const nav = screen.getByLabelText("Breadcrumb");
assert.notStrictEqual(nav, null);
assert.strictEqual(screen.getAllByRole("link").length, 3);
assert.strictEqual(
screen.getByText("Current").closest("a")?.getAttribute("aria-current"), "page"
);
});
test("updates item/link classnames when baseClass changes", () => {
const items = [
{ href: "/", labelSlot: "Home" },
{ href: "/catalog", labelSlot: "Catalog" },
];
const { rerender } = render();
const firstLinkBefore = screen.getByText("Home").closest("a");
assert.strictEqual(firstLinkBefore?.classList.contains("breadcrumbs__link"), true);
rerender();
const firstLinkAfter = screen.getByText("Home").closest("a");
assert.strictEqual(firstLinkAfter?.classList.contains("crumbs__link"), true);
assert.strictEqual(firstLinkAfter?.classList.contains("breadcrumbs__link"), false);
});
});