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