import { fireEvent, render, screen } from "@testing-library/react"; import { expect, test, vi } from "vitest"; import { ResourceSelectField } from "./ResourceSelectDrawer.jsx"; vi.mock("@/shared/ui/SideDrawer.jsx", () => ({ SideDrawer({ children, drawerProps, onClose, open, title }) { if (!open) { return null; } return ( ); }, })); const resources = [ { coinPrice: 10, name: "Rose Gift", priceType: "coin", resourceCode: "rose_gift", resourceId: 1, resourceType: "gift", }, { coinPrice: 0, name: "VIP Vehicle", priceType: "free", resourceCode: "vip_vehicle", resourceId: 2, resourceType: "vehicle", }, ]; test("resource select drawer stays above dialogs and filters by category", () => { render(); fireEvent.click(screen.getByPlaceholderText("请选择资源")); expect(screen.getByRole("dialog", { name: "选择资源" })).toHaveAttribute("data-z-index", "1600"); expect(screen.getByText("Rose Gift")).toBeInTheDocument(); expect(screen.getByText("VIP Vehicle")).toBeInTheDocument(); fireEvent.mouseDown(screen.getByRole("combobox", { name: "分类" })); fireEvent.click(screen.getByRole("option", { name: "座驾" })); expect(screen.queryByText("Rose Gift")).not.toBeInTheDocument(); expect(screen.getByText("VIP Vehicle")).toBeInTheDocument(); });