import { render, screen } from "@testing-library/react"; import { userEvent } from "@testing-library/user-event"; import { DrawerTrigger } from "./DrawerTrigger"; import { DrawerRoot } from "./DrawerRoot"; describe("DrawerTrigger", () => { const customRender = (ui, contextProps) => { return render({ui}); }; test("renders visibly into the document", () => { render(Trigger Drawer); expect(screen.getByText("Trigger Drawer")).toBeVisible(); }); test("sets aria-expanded based on context open", () => { customRender(Trigger Drawer, { open: true, }); expect(screen.getByRole("button", { expanded: true })).toBeVisible(); }); test("sets aria-controls based on context contentId", () => { customRender(Trigger Drawer, { id: "test-id", }); expect(screen.getByRole("button")).toHaveAttribute( "aria-controls", "test-id" ); }); test("uses openChange handler from context", async () => { const user = userEvent.setup(); const handleChange = jest.fn(); customRender(Trigger Drawer, { onOpenChange: handleChange, }); await user.click(screen.getByRole("button")); expect(handleChange).toHaveBeenCalledWith(true); }); });