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