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