@crossed/primitive
Version:
A universal & performant styling library for React Native, Next.js & React
86 lines (85 loc) • 4.05 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var import_jsx_runtime = require("react/jsx-runtime");
var import_jest_dom = require("@testing-library/jest-dom");
var import_react = require("react");
var import__ = require("../index");
var import_Button = require("../Button");
var import_ButtonText = require("../ButtonText");
var import_ButtonElement = require("../ButtonElement");
var import_ButtonGroup = require("../ButtonGroup");
var allExport = __toESM(require("../index"));
const createButtonMainMocked = import_Button.createButtonMain;
const createButtonTextMocked = import_ButtonText.createButtonText;
const createButtonElementMocked = import_ButtonElement.createButtonElement;
const createButtonGroupMocked = import_ButtonGroup.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 = (0, import_react.forwardRef)((p, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { ...p, ref }));
const Group = (0, import_react.forwardRef)((p, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { ...p, ref }));
const Root = (0, import_react.forwardRef)((p, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { ...p, ref }));
const Icon = (0, import_react.forwardRef)((p, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { ...p, ref }));
const Text = (0, import_react.forwardRef)((p, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { ...p, ref }));
const Button = (0, import__.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