/**
* @file Tests for InspectorIconButton component
*/
import { render, screen, fireEvent } from "@testing-library/react";
import { InspectorIconButton } from "./InspectorIconButton";
const MockIcon = () => ;
describe("InspectorIconButton", () => {
it("renders icon content", () => {
render(} aria-label="Test button" />);
expect(screen.getByTestId("mock-icon")).toBeInTheDocument();
});
it("applies aria-label for accessibility", () => {
render(} aria-label="Test button" />);
expect(screen.getByRole("button", { name: "Test button" })).toBeInTheDocument();
});
it("handles click events", () => {
let clickCount = 0;
const handleClick = () => {
clickCount++;
};
render(} aria-label="Test button" onClick={handleClick} />);
fireEvent.click(screen.getByRole("button"));
expect(clickCount).toBe(1);
});
it("applies data-size attribute based on size prop", () => {
const { rerender } = render(} aria-label="Test button" size="default" />);
expect(screen.getByRole("button")).toHaveAttribute("data-size", "default");
rerender(} aria-label="Test button" size="small" />);
expect(screen.getByRole("button")).toHaveAttribute("data-size", "small");
});
it("applies data-active attribute when active", () => {
const { rerender } = render(} aria-label="Test button" active={false} />);
expect(screen.getByRole("button")).not.toHaveAttribute("data-active");
rerender(} aria-label="Test button" active={true} />);
expect(screen.getByRole("button")).toHaveAttribute("data-active", "true");
});
it("disables button when disabled prop is true", () => {
render(} aria-label="Test button" disabled />);
expect(screen.getByRole("button")).toBeDisabled();
});
it("accepts additional className", () => {
render(} aria-label="Test button" className="custom-class" />);
expect(screen.getByRole("button")).toHaveClass("custom-class");
});
});