UNPKG

@crossed/primitive

Version:

A universal & performant styling library for React Native, Next.js & React

57 lines (56 loc) 2.56 kB
import { Fragment, jsx } from "react/jsx-runtime"; import "@testing-library/jest-dom"; import { render, screen } from "@crossed/test"; import { forwardRef } from "react"; import { createButtonGroup } from "../ButtonGroup"; import { ProviderGroup } from "../contextGroup"; import { RovingFocusGroup } from "../../utils/RovingFocus"; import { ButtonGroupCollection } from "../contextCollection"; const Comp = forwardRef((p, ref) => /* @__PURE__ */ jsx("p", { ...p, ref })); const NewComp = createButtonGroup(Comp); jest.mock("../contextGroup"); jest.mock("../contextCollection"); jest.mock("../../utils/RovingFocus"); const ProviderMocked = ProviderGroup; const RovingFocusGroupMocked = RovingFocusGroup.render; const CollectionProviderMocked = ButtonGroupCollection.Provider; const CollectionSlotMocked = ButtonGroupCollection.Slot.render; describe("createButtonGroup", () => { beforeEach(() => { ProviderMocked.mockImplementation(({ children }) => /* @__PURE__ */ jsx(Fragment, { children })); RovingFocusGroupMocked.mockImplementation(({ children }) => /* @__PURE__ */ jsx(Fragment, { children })); CollectionProviderMocked.mockImplementation(({ children }) => /* @__PURE__ */ jsx(Fragment, { children })); CollectionSlotMocked.mockImplementation(({ children }) => /* @__PURE__ */ jsx(Fragment, { children })); }); afterEach(() => { ProviderMocked.mockReset(); RovingFocusGroupMocked.mockReset(); CollectionProviderMocked.mockReset(); CollectionSlotMocked.mockReset(); }); test("init", async () => { const child = "Pass child"; render(/* @__PURE__ */ jsx(NewComp, { children: child })); expect(ProviderMocked).toHaveBeenCalled(); expect(ProviderMocked.mock.lastCall[0]).toHaveProperty("children"); expect(ProviderMocked.mock.lastCall[0]).toHaveProperty("grouped", true); expect(ProviderMocked.mock.lastCall[0]).toHaveProperty( "orientation", "horizontal" ); expect(RovingFocusGroupMocked).toHaveBeenCalled(); expect(RovingFocusGroupMocked.mock.lastCall[0]).toHaveProperty("children"); expect(RovingFocusGroupMocked.mock.lastCall[0]).toHaveProperty( "orientation", "horizontal" ); expect(CollectionProviderMocked).toHaveBeenCalled(); expect(CollectionProviderMocked.mock.lastCall[0]).toHaveProperty( "children" ); expect(CollectionSlotMocked).toHaveBeenCalled(); expect(CollectionSlotMocked.mock.lastCall[0]).toHaveProperty("children"); await screen.getByText(child); }); }); //# sourceMappingURL=ButtonGroup.spec.js.map