// @vitest-environment jsdom import { describe, it, expect, afterEach, vi } from "vitest"; import { render, screen, cleanup, fireEvent } from "@testing-library/react"; import { Select } from "./Select.tsx"; afterEach(cleanup); function options() { return ( <> ); } describe("Select", () => { it("renders options and reflects the value", () => { render( , ); const select = screen.getByRole("combobox", { name: "Profile" }); expect((select as HTMLSelectElement).value).toBe("trekking"); expect(select.className).toContain("border-border"); }); it("fires onChange with the selected value", () => { const onChange = vi.fn(); render( , ); fireEvent.change(screen.getByRole("combobox", { name: "Profile" }), { target: { value: "trekking" }, }); expect(onChange).toHaveBeenCalledTimes(1); }); it("applies the compact size classes", () => { render( , ); expect(screen.getByRole("combobox", { name: "Profile" }).className).toContain( "h-7", ); }); });