@crossed/ui
Version:
A universal & performant styling library for React Native, Next.js & React
40 lines (39 loc) • 2.14 kB
JavaScript
var import_jsx_runtime = require("react/jsx-runtime");
var import_react = require("react");
var import_IconButton = require("../IconButton");
var import_unicons = require("@crossed/unicons");
var import_test = require("@crossed/test");
describe("IconButton", () => {
it("renders correctly", () => {
(0, import_test.render)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_IconButton.IconButton, {}));
const button = import_test.screen.getByRole("button");
expect(button).toBeTruthy();
});
it("renders the provided children", () => {
(0, import_test.render)(
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_IconButton.IconButton, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_unicons.X, {}) })
);
expect(import_test.screen.getByRole("button")).toMatchSnapshot();
});
it("calls onPress when pressed", async () => {
const onPressMock = jest.fn();
(0, import_test.render)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_IconButton.IconButton, { onPress: onPressMock }));
const button = import_test.screen.getByRole("button");
await (0, import_react.act)(() => import_test.userEvent.click(button));
expect(onPressMock).toHaveBeenCalledTimes(1);
});
it("does not call onPress when disabled", async () => {
const onPressMock = jest.fn();
(0, import_test.render)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_IconButton.IconButton, { onPress: onPressMock, disabled: true }));
const button = import_test.screen.getByRole("button");
await (0, import_react.act)(() => import_test.userEvent.click(button, { pointerEventsCheck: 0 }));
expect(onPressMock).not.toHaveBeenCalled();
});
it("renders function-based children correctly", () => {
const childMock = jest.fn(() => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_unicons.X, {}));
(0, import_test.render)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_IconButton.IconButton, { children: childMock }));
expect(childMock).toHaveBeenCalled();
expect(import_test.screen.getByRole("button")).toMatchSnapshot();
});
});
//# sourceMappingURL=IconButton.spec.js.map