UNPKG

@crossed/primitive

Version:

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

63 lines (62 loc) 2.54 kB
import { jsx } from "react/jsx-runtime"; import "@testing-library/jest-dom"; import { forwardRef } from "react"; import { createButton } from "../index"; import { createButtonMain } from "../Button"; import { createButtonText } from "../ButtonText"; import { createButtonElement } from "../ButtonElement"; import { createButtonGroup } from "../ButtonGroup"; import * as allExport from "../index"; const createButtonMainMocked = createButtonMain; const createButtonTextMocked = createButtonText; const createButtonElementMocked = createButtonElement; const createButtonGroupMocked = createButtonGroup; jest.mock("../Button"); jest.mock("../ButtonText"); jest.mock("../ButtonElement"); jest.mock("../ButtonGroup"); describe("createButton", () => { beforeEach(() => { createButtonMainMocked.mockImplementation((e) => e); createButtonTextMocked.mockImplementation((e) => e); createButtonElementMocked.mockImplementation((e) => e); createButtonGroupMocked.mockImplementation((e) => e); }); afterEach(() => { createButtonMainMocked.mockReset(); createButtonTextMocked.mockReset(); createButtonElementMocked.mockReset(); createButtonGroupMocked.mockReset(); }); test("check exports", () => { expect(Object.keys(allExport)).toEqual([ "createButton", "useButtonContext", "useButtonGroupCollection", "useButtonGroupContext" ]); }); test("init", async () => { const Element = forwardRef((p, ref) => /* @__PURE__ */ jsx("p", { ...p, ref })); const Group = forwardRef((p, ref) => /* @__PURE__ */ jsx("p", { ...p, ref })); const Root = forwardRef((p, ref) => /* @__PURE__ */ jsx("p", { ...p, ref })); const Icon = forwardRef((p, ref) => /* @__PURE__ */ jsx("p", { ...p, ref })); const Text = forwardRef((p, ref) => /* @__PURE__ */ jsx("p", { ...p, ref })); const Button = createButton({ Element, Group, Root, Text, Icon }); expect(createButtonMainMocked).toHaveBeenCalledWith(Root); expect(createButtonTextMocked).toHaveBeenCalledWith(Text); expect(createButtonElementMocked).toHaveBeenCalledWith(Element); expect(createButtonGroupMocked).toHaveBeenCalledWith(Group); expect(Button).toHaveProperty("displayName", "Button"); expect(Button.Text).toHaveProperty("displayName", "ButtonText"); expect(Button.Group).toHaveProperty("displayName", "ButtonGroup"); expect(Button.Element).toHaveProperty("displayName", "ButtonElement"); }); }); //# sourceMappingURL=createButton.spec.js.map