import { describe, test, expect } from "vitest"; import { render, screen } from "@testing-library/react"; import { ChipGroup } from "."; import { Chip } from "../Chip"; describe("ChipGroup", () => { test("matches snapshot", () => { const result = render( Item ); expect(result.asFragment()).toMatchSnapshot(); }); test("renders label", () => { render( Item ); expect(screen.getByLabelText("My Chip Group")).not.toBeNull(); }); test("renders chips", () => { const chips = [ { id: "1", rendered: "Chip 1" }, { id: "2", rendered: "Chip 2" }, { id: "3", rendered: "Chip 3" }, ]; render( {({ rendered }) => {rendered}} ); chips.forEach((chip) => { expect(screen.getByText(chip.rendered)).not.toBeNull(); }); }); test("renders chips with href", () => { const chips = [ { key: "1", rendered: "Chip 1", href: "/chip1" }, { key: "2", rendered: "Chip 2", href: "/chip2" }, ]; render( {({ key, rendered, href }) => ( {rendered} )} ); chips.forEach((chip) => { const link = screen.getByRole("row", { name: chip.rendered }); expect(link).toHaveAttribute("href", chip.href); }); }); });