@crossed/ui
Version:
A universal & performant styling library for React Native, Next.js & React
39 lines (38 loc) • 1.6 kB
JavaScript
var import_jsx_runtime = require("react/jsx-runtime");
var import_test = require("@crossed/test");
var import_Trigger = require("../Trigger");
var import_context = require("../context");
var import_react = require("react");
describe("Floating.Trigger", () => {
const mount = (open) => {
expect(import_Trigger.FloatingTrigger.displayName).toEqual("Floating.Trigger");
const onClose = jest.fn();
const onOpen = jest.fn();
(0, import_test.render)(
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.FloatingConfigProvider, { triggerStrategy: "onPress", enabled: true, portal: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
import_context.FloatingProvider,
{
onClose,
onOpen,
open: open ?? false,
removeScroll: false,
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Trigger.FloatingTrigger, { testID: "trigger" })
}
) })
);
return { onClose, onOpen };
};
test("click for open", async () => {
const { onOpen, onClose } = mount();
await (0, import_react.act)(() => import_test.userEvent.click(import_test.screen.getByTestId("trigger")));
expect(onOpen).toHaveBeenCalled();
expect(onClose).not.toHaveBeenCalled();
});
test("open", async () => {
const { onOpen, onClose } = mount(true);
await (0, import_react.act)(() => import_test.userEvent.click(import_test.screen.getByTestId("trigger")));
expect(onClose).toHaveBeenCalled();
expect(onOpen).not.toHaveBeenCalled();
});
});
//# sourceMappingURL=Trigger.spec.js.map