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