@crossed/primitive
Version:
A universal & performant styling library for React Native, Next.js & React
57 lines (56 loc) • 2.56 kB
JavaScript
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