import {render, screen} from "@heroui/testing/helpers"; import {Fieldset} from "@/components/fieldset"; describe("Fieldset", () => { it("renders composed legend and fields", () => { render(
Profile Name field
, ); expect(screen.getByText("Profile")).toBeInTheDocument(); expect(screen.getByText("Name field")).toBeInTheDocument(); expect(screen.getByRole("button", {name: "Save"})).toBeInTheDocument(); }); it("exposes BEM block and data-slot", () => { render(
Content
); const fieldset = screen.getByTestId("fieldset"); expect(fieldset).toHaveAttribute("data-slot", "fieldset"); expect(fieldset.className).toEqual(expect.stringContaining("fieldset")); }); it("supports data attribute passthrough", () => { render(
Content
, ); expect(screen.getByTestId("fieldset")).toHaveAttribute("data-foo", "bar"); }); it("exposes data-disabled from native disabled state", () => { render(
Content
, ); expect(screen.getByTestId("fieldset")).toHaveAttribute("data-disabled", "true"); }); describe("composition", () => { it("exposes data-slot on each sub-part", () => { render(
Profile Fields Actions
, ); expect(screen.getByTestId("legend")).toHaveAttribute("data-slot", "fieldset-legend"); expect(screen.getByTestId("group")).toHaveAttribute("data-slot", "fieldset-field-group"); expect(screen.getByTestId("actions")).toHaveAttribute("data-slot", "fieldset-actions"); }); }); });