UNPKG

@crossed/primitive

Version:

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

44 lines (43 loc) 1.65 kB
import { jsx } from "react/jsx-runtime"; import "@testing-library/jest-dom"; import { forwardRef } from "react"; import { createLabel } from "../index"; import { createLabelMain } from "../Label"; import { LabelInput } from "../LabelInput"; import { createLabelText } from "../LabelText"; import * as allExport from "../index"; const createLabelMainMocked = createLabelMain; const createLabelTextMocked = createLabelText; const LabelInputMocked = LabelInput.render; jest.mock("../Label"); jest.mock("../LabelInput"); jest.mock("../LabelText"); describe("createLabel", () => { beforeEach(() => { createLabelMainMocked.mockImplementation((e) => e); createLabelTextMocked.mockImplementation((e) => e); LabelInputMocked.mockImplementation((e) => e); }); afterEach(() => { createLabelMainMocked.mockReset(); createLabelTextMocked.mockReset(); LabelInputMocked.mockReset(); }); test("check exports", () => { expect(Object.keys(allExport)).toEqual(["createLabel", "useLabelContext"]); }); test("init", async () => { const Root = forwardRef((p, ref) => /* @__PURE__ */ jsx("p", { ...p, ref })); const Text = forwardRef((p, ref) => /* @__PURE__ */ jsx("p", { ...p, ref })); const Label = createLabel({ Root, Text }); expect(createLabelMainMocked).toHaveBeenCalledWith(Root); expect(createLabelTextMocked).toHaveBeenCalledWith(Text); expect(Label).toHaveProperty("displayName", "Label"); expect(Label.Text).toHaveProperty("displayName", "Label.Text"); expect(Label.Input).toHaveProperty("displayName", "Label.Input"); }); }); //# sourceMappingURL=createLabel.spec.js.map