UNPKG

@crossed/ui

Version:

A universal & performant styling library for React Native, Next.js & React

57 lines (56 loc) 2.37 kB
var import_jsx_runtime = require("react/jsx-runtime"); var import_test = require("@crossed/test"); var import_Root = require("../Root"); var import_context = require("../context"); var import_react = require("react"); jest.mock("../context", () => ({ ...jest.requireActual("../context"), FloatingProvider: jest.fn(() => null) })); const FloatingProviderMocked = jest.mocked(import_context.FloatingProvider); describe("Floating.Root", () => { const mount = (defaultOpen) => { const onChange = jest.fn(); const ref = (0, import_react.createRef)(); expect(import_Root.FloatingRoot.displayName).toEqual("Floating"); (0, import_test.render)( /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Root.FloatingRoot, { onChange, defaultValue: defaultOpen, ref }) ); return { ref }; }; afterEach(() => { FloatingProviderMocked.mockReset(); }); test("verify based props", async () => { const { ref } = mount(); const call = FloatingProviderMocked.mock.calls[0][0]; expect(call).toHaveProperty("children", void 0); expect(call).toHaveProperty("closeOverlayPress", true); expect(call).toHaveProperty("onClose"); expect(call).toHaveProperty("onOpen"); expect(call).toHaveProperty("open", false); expect(call).toHaveProperty("removeScroll", true); expect(call).toHaveProperty("wait", 0); expect(ref.current).toHaveProperty("open"); expect(ref.current).toHaveProperty("close"); }); test("check imperative handle open", async () => { mount(); expect(FloatingProviderMocked).toHaveBeenCalledTimes(1); const call = FloatingProviderMocked.mock.calls[0][0]; await (0, import_react.act)(() => Promise.resolve(call.onOpen())); expect(FloatingProviderMocked).toHaveBeenCalledTimes(2); const call2 = FloatingProviderMocked.mock.calls[1][0]; expect(call2).toHaveProperty("open", true); }); test("check imperative handle onClose", async () => { mount(true); expect(FloatingProviderMocked).toHaveBeenCalledTimes(1); const call = FloatingProviderMocked.mock.calls[0][0]; await (0, import_react.act)(() => Promise.resolve(call.onClose())); expect(FloatingProviderMocked).toHaveBeenCalledTimes(2); const call2 = FloatingProviderMocked.mock.calls[1][0]; expect(call2).toHaveProperty("open", false); }); }); //# sourceMappingURL=Root.spec.js.map