/** * @file Tests for InspectorSelect component */ import { render, screen, fireEvent } from "@testing-library/react"; import { InspectorSelect } from "./InspectorSelect"; describe("InspectorSelect", () => { it("renders select element with options", () => { render( , ); expect(screen.getByRole("combobox")).toBeInTheDocument(); expect(screen.getByText("Option A")).toBeInTheDocument(); expect(screen.getByText("Option B")).toBeInTheDocument(); }); it("handles value changes", () => { let changed = false; const handleChange = () => { changed = true; }; render( , ); fireEvent.change(screen.getByRole("combobox"), { target: { value: "b" } }); expect(changed).toBe(true); }); it("applies variant data attribute", () => { const { rerender } = render(); expect(screen.getByRole("combobox")).toHaveAttribute("data-variant", "default"); rerender(); expect(screen.getByRole("combobox")).toHaveAttribute("data-variant", "outline"); rerender(); expect(screen.getByRole("combobox")).toHaveAttribute("data-variant", "filled"); }); it("applies error state", () => { const { rerender } = render(); expect(screen.getByRole("combobox")).not.toHaveAttribute("data-error"); rerender(); expect(screen.getByRole("combobox")).toHaveAttribute("data-error", "true"); }); it("handles disabled state", () => { render(); expect(screen.getByRole("combobox")).toBeDisabled(); }); it("accepts additional className", () => { render(); expect(screen.getByRole("combobox")).toHaveClass("custom-class"); }); });