@crossed/primitive
Version:
A universal & performant styling library for React Native, Next.js & React
47 lines (46 loc) • 2.42 kB
JavaScript
;
var import_jsx_runtime = require("react/jsx-runtime");
var import_jest_dom = require("@testing-library/jest-dom");
var import_test = require("@crossed/test");
var import__ = require("../");
var import_react_native = require("react-native");
var import_portal = require("@gorhom/portal");
describe("createModal", () => {
test("return from createModal", async () => {
const modal = (0, import__.createModal)();
expect(Object.keys(modal)).toEqual([
"modalContext",
"Modal",
"ModalContent",
"ModalOverlay",
"ModalTitle",
"ModalTrigger",
"ModalPortal",
"ModalBody"
]);
});
test("open/close component", async () => {
const {} = (0, import_test.render)(
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.PortalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.Modal, { children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.ModalTrigger, { testID: "trigger", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "toto" }) }),
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.ModalPortal, { children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.ModalOverlay, { testID: "overlay" }),
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.ModalContent, { testID: "content", children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.ModalTitle, { children: "toto" }),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.ModalTrigger, { testID: "close", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "close" }) }),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.ModalBody, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "toto" }) })
] })
] })
] }) })
);
const open = async () => {
await import_test.userEvent.click(import_test.screen.getByTestId("trigger"));
};
expect(() => import_test.screen.getByTestId("content")).toThrow();
await open();
expect(import_test.screen.getByTestId("content")).toBeVisible();
await import_test.userEvent.click(import_test.screen.getByTestId("close"));
expect(() => import_test.screen.getByTestId("content")).toThrow();
});
});
//# sourceMappingURL=Modal.spec.js.map