Files
auto-virtual-tryon-frontend/tests/ui/select.test.tsx
2026-03-28 13:42:22 +08:00

33 lines
991 B
TypeScript

import { fireEvent, render, screen } from "@testing-library/react";
import { expect, test, vi } from "vitest";
import { Select } from "@/components/ui/select";
test("renders a shadcn-style popover select and emits the chosen value", () => {
const onValueChange = vi.fn();
render(
<Select
aria-label="status"
options={[
{ value: "all", label: "全部状态" },
{ value: "waiting_review", label: "待审核" },
]}
placeholder="请选择状态"
value="all"
onValueChange={onValueChange}
/>,
);
const trigger = screen.getByRole("combobox", { name: "status" });
expect(trigger.className).toContain("inline-flex");
expect(trigger.className).toContain("justify-between");
fireEvent.click(trigger);
expect(screen.getByRole("option", { name: "待审核" })).toBeInTheDocument();
fireEvent.click(screen.getByRole("option", { name: "待审核" }));
expect(onValueChange).toHaveBeenCalledWith("waiting_review");
});