diff --git a/packages/framer-motion-3d/jest.setup.tsx b/packages/framer-motion-3d/jest.setup.tsx index 496bb64b74..645f1adc38 100644 --- a/packages/framer-motion-3d/jest.setup.tsx +++ b/packages/framer-motion-3d/jest.setup.tsx @@ -1,6 +1,6 @@ import "@testing-library/jest-dom" // Get fireEvent from the native testing library -// because @testing-library/react one switches out mouseEnter and mouseLeave +// because @testing-library/react one switches out pointerEnter and pointerLeave import { fireEvent, getByTestId } from "@testing-library/dom" import { render as testRender, act } from "@testing-library/react" import * as React from "react" @@ -18,21 +18,21 @@ export const click = (element: Element) => act(() => { fireEvent.click(element) }) -export const mouseEnter = (element: Element) => +export const pointerEnter = (element: Element) => act(() => { - fireEvent.mouseEnter(element) + fireEvent.pointerEnter(element) }) -export const mouseLeave = (element: Element) => +export const pointerLeave = (element: Element) => act(() => { - fireEvent.mouseLeave(element) + fireEvent.pointerLeave(element) }) -export const mouseDown = (element: Element) => +export const pointerDown = (element: Element) => act(() => { - fireEvent.mouseDown(element) + fireEvent.pointerDown(element) }) -export const mouseUp = (element: Element) => +export const pointerUp = (element: Element) => act(() => { - fireEvent.mouseUp(element) + fireEvent.pointerUp(element) }) export const focus = (element: HTMLElement, testId: string) => act(() => { diff --git a/packages/framer-motion/jest.setup.tsx b/packages/framer-motion/jest.setup.tsx index 496bb64b74..645f1adc38 100644 --- a/packages/framer-motion/jest.setup.tsx +++ b/packages/framer-motion/jest.setup.tsx @@ -1,6 +1,6 @@ import "@testing-library/jest-dom" // Get fireEvent from the native testing library -// because @testing-library/react one switches out mouseEnter and mouseLeave +// because @testing-library/react one switches out pointerEnter and pointerLeave import { fireEvent, getByTestId } from "@testing-library/dom" import { render as testRender, act } from "@testing-library/react" import * as React from "react" @@ -18,21 +18,21 @@ export const click = (element: Element) => act(() => { fireEvent.click(element) }) -export const mouseEnter = (element: Element) => +export const pointerEnter = (element: Element) => act(() => { - fireEvent.mouseEnter(element) + fireEvent.pointerEnter(element) }) -export const mouseLeave = (element: Element) => +export const pointerLeave = (element: Element) => act(() => { - fireEvent.mouseLeave(element) + fireEvent.pointerLeave(element) }) -export const mouseDown = (element: Element) => +export const pointerDown = (element: Element) => act(() => { - fireEvent.mouseDown(element) + fireEvent.pointerDown(element) }) -export const mouseUp = (element: Element) => +export const pointerUp = (element: Element) => act(() => { - fireEvent.mouseUp(element) + fireEvent.pointerUp(element) }) export const focus = (element: HTMLElement, testId: string) => act(() => { diff --git a/packages/framer-motion/src/events/__tests__/use-event.test.tsx b/packages/framer-motion/src/events/__tests__/use-event.test.tsx index 6b51b2d5ab..84d5fd7f61 100644 --- a/packages/framer-motion/src/events/__tests__/use-event.test.tsx +++ b/packages/framer-motion/src/events/__tests__/use-event.test.tsx @@ -10,24 +10,24 @@ describe("useDomEvent", () => { const handler = jest.fn() const Component = () => { const ref = useRef(null) - useDomEvent(ref, "mousedown", handler) + useDomEvent(ref, "pointerDown", handler) return
} const { container, rerender } = render() rerender() - fireEvent.mouseDown(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) expect(handler).not.toHaveBeenCalled() }) it("should call the handler when the event is fired", () => { const handler = jest.fn() const Component = () => { const ref = useRef(null) - useDomEvent(ref, "mousedown", handler) + useDomEvent(ref, "pointerDown", handler) return
} const { container, rerender } = render() rerender() - fireEvent.mouseDown(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) expect(handler).toHaveBeenCalledTimes(1) }) @@ -36,13 +36,13 @@ describe("useDomEvent", () => { const promise = new Promise((resolve) => { const Component = () => { const ref = useRef(document.body) - useDomEvent(ref, "mousedown", handler) + useDomEvent(ref, "pointerDown", handler) useEffect(resolve) return
} const { rerender } = render() rerender() - fireEvent.mouseDown(document.body) + fireEvent.pointerDown(document.body) }) await expect(promise).resolves.toEqual(undefined) expect(handler).toHaveBeenCalled() @@ -52,14 +52,14 @@ describe("useDomEvent", () => { const promise = new Promise((resolve) => { const Component = () => { const ref = useRef(document.body) - useDomEvent(ref, "mousedown", handler) + useDomEvent(ref, "pointerDown", handler) return
} const { rerender, unmount } = render() rerender() unmount() requestAnimationFrame(() => { - fireEvent.mouseDown(document.body) + fireEvent.pointerDown(document.body) resolve() }) }) diff --git a/packages/framer-motion/src/events/__tests__/use-pointer-events.test.tsx b/packages/framer-motion/src/events/__tests__/use-pointer-events.test.tsx index f8260bf3ce..38f10571d8 100644 --- a/packages/framer-motion/src/events/__tests__/use-pointer-events.test.tsx +++ b/packages/framer-motion/src/events/__tests__/use-pointer-events.test.tsx @@ -1,8 +1,8 @@ -import { mouseEnter, mouseLeave, render } from "../../../jest.setup" -import { fireEvent } from "@testing-library/dom" +import { render } from "../../../jest.setup" + import * as React from "react" import { usePointerEvent } from "../use-pointer-event" -import { enableTouchEvents, enablePointerEvents } from "./utils/event-helpers" +import { enablePointerEvents } from "./utils/event-helpers" import { fireCustomEvent } from "./utils/fire-event" function testEventsWithRef(fireFunctions: { @@ -29,24 +29,6 @@ function testEventsWithRef(fireFunctions: { expect(handlers[key]).toHaveBeenCalledTimes(1) } } - -const touchEvents = { - pointerdown: fireEvent.touchStart, - pointermove: fireEvent.touchMove, - pointerup: fireEvent.touchEnd, - pointercancel: fireEvent.touchCancel, -} - -const mouseEvents = { - pointerdown: fireEvent.mouseDown, - pointermove: fireEvent.mouseMove, - pointerup: fireEvent.mouseUp, - pointerover: fireEvent.mouseOver, - pointerout: fireEvent.mouseOut, - pointerenter: mouseEnter, - pointerleave: mouseLeave, -} - const pointerEvents = { pointerdown: fireCustomEvent("pointerdown"), pointermove: fireCustomEvent("pointermove"), @@ -59,23 +41,6 @@ const pointerEvents = { } describe("usePointerEvents", () => { - describe("with touch events", () => { - let restore: Function - beforeAll(() => { - restore = enableTouchEvents() - }) - afterAll(() => { - restore() - }) - it(`should call handlers with ref`, async () => { - testEventsWithRef(touchEvents) - }) - }) - describe("with mouse events", () => { - it(`should call handlers with ref`, async () => { - testEventsWithRef(mouseEvents) - }) - }) describe("with pointer events", () => { let restore: Function beforeAll(() => { diff --git a/packages/framer-motion/src/gestures/__tests__/hover.test.tsx b/packages/framer-motion/src/gestures/__tests__/hover.test.tsx index 829f8a98d7..32f93b0eb5 100644 --- a/packages/framer-motion/src/gestures/__tests__/hover.test.tsx +++ b/packages/framer-motion/src/gestures/__tests__/hover.test.tsx @@ -1,4 +1,4 @@ -import { mouseEnter, mouseLeave, render } from "../../../jest.setup" +import { pointerEnter, pointerLeave, render } from "../../../jest.setup" import * as React from "react" import { motion } from "../../" import { fireEvent } from "@testing-library/react" @@ -15,8 +15,8 @@ describe("hover", () => { ) const { container } = render() - mouseEnter(container.firstChild as Element) - mouseLeave(container.firstChild as Element) + pointerEnter(container.firstChild as Element) + pointerLeave(container.firstChild as Element) expect(hoverIn).toBeCalledTimes(1) expect(hoverOut).toBeCalledTimes(1) @@ -36,7 +36,7 @@ describe("hover", () => { const { container, rerender } = render() rerender() - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) resolve(opacity.get()) }) @@ -63,7 +63,7 @@ describe("hover", () => { const { container, rerender } = render() rerender() - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) resolve(opacity.get()) }) @@ -99,7 +99,7 @@ describe("hover", () => { const { container } = render() - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) resolve(opacity.get()) }) @@ -130,10 +130,10 @@ describe("hover", () => { ) - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) setTimeout(() => { hasMousedOut = true - mouseLeave(container.firstChild as Element) + pointerLeave(container.firstChild as Element) }, 10) }) @@ -161,8 +161,8 @@ describe("hover", () => { const { container, rerender } = render() rerender() - fireEvent.mouseDown(container.firstChild as Element) - mouseEnter(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) + pointerEnter(container.firstChild as Element) resolve([opacity.get(), scale.get()]) }) @@ -188,10 +188,10 @@ describe("hover", () => { const { container, rerender } = render() rerender() - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) sync.postRender(() => { - mouseLeave(container.firstChild as Element) + pointerLeave(container.firstChild as Element) sync.postRender(() => resolve(container.firstChild as Element)) }) }) diff --git a/packages/framer-motion/src/gestures/__tests__/press.test.tsx b/packages/framer-motion/src/gestures/__tests__/press.test.tsx index 8e4bd592c0..f9c62ae035 100644 --- a/packages/framer-motion/src/gestures/__tests__/press.test.tsx +++ b/packages/framer-motion/src/gestures/__tests__/press.test.tsx @@ -3,10 +3,10 @@ import { motion } from "../.." import { fireEvent } from "@testing-library/dom" import { motionValue } from "../../value" import { - mouseDown, - mouseEnter, - mouseLeave, - mouseUp, + pointerDown, + pointerEnter, + pointerLeave, + pointerUp, render, } from "../../../jest.setup" import { drag, MockDrag } from "../drag/__tests__/utils" @@ -19,8 +19,8 @@ describe("press", () => { const { container, rerender } = render() rerender() - fireEvent.mouseDown(container.firstChild as Element) - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) expect(press).toBeCalledTimes(1) }) @@ -31,12 +31,12 @@ describe("press", () => { press()} /> ) rerender( press()} />) - fireEvent.mouseDown(container.firstChild as Element) - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) expect(press).toBeCalledTimes(1) rerender() - fireEvent.mouseDown(container.firstChild as Element) - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) expect(press).toBeCalledTimes(1) }) @@ -59,13 +59,13 @@ describe("press", () => { const a = getByTestId("a") const b = getByTestId("b") - fireEvent.mouseDown(a) - fireEvent.mouseUp(a) + fireEvent.pointerDown(a) + fireEvent.pointerUp(a) expect(cancelA).not.toHaveBeenCalled() - fireEvent.mouseDown(b) - fireEvent.mouseUp(b) + fireEvent.pointerDown(b) + fireEvent.pointerUp(b) expect(cancelA).not.toHaveBeenCalled() }) @@ -80,8 +80,8 @@ describe("press", () => { const { getByTestId, rerender } = render() rerender() - fireEvent.mouseDown(getByTestId("child")) - fireEvent.mouseUp(getByTestId("child")) + fireEvent.pointerDown(getByTestId("child")) + fireEvent.pointerUp(getByTestId("child")) expect(press).toBeCalledTimes(1) }) @@ -97,8 +97,8 @@ describe("press", () => { const { container, getByTestId, rerender } = render() rerender() - fireEvent.mouseDown(getByTestId("child")) - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerDown(getByTestId("child")) + fireEvent.pointerUp(container.firstChild as Element) expect(press).toBeCalledTimes(1) }) @@ -114,8 +114,8 @@ describe("press", () => { const { container, getByTestId, rerender } = render() rerender() - fireEvent.mouseDown(container.firstChild as Element) - fireEvent.mouseUp(getByTestId("child")) + fireEvent.pointerDown(container.firstChild as Element) + fireEvent.pointerUp(getByTestId("child")) expect(press).toBeCalledTimes(1) }) @@ -134,8 +134,8 @@ describe("press", () => { const { container, getByTestId, rerender } = render() rerender() - fireEvent.mouseDown(getByTestId("child")) - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerDown(getByTestId("child")) + fireEvent.pointerUp(container.firstChild as Element) expect(pressCancel).toBeCalledTimes(1) }) @@ -193,17 +193,17 @@ describe("press", () => { rerender() rerender() - fireEvent.mouseDown(container.firstChild as Element) - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) rerender() rerender() - fireEvent.mouseDown(container.firstChild as Element) - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) - fireEvent.mouseDown(container.firstChild as Element) - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) expect(press).toBeCalledTimes(3) }) @@ -227,12 +227,12 @@ describe("press", () => { logOpacity() // 0.5 // Trigger mouse down - mouseDown(container.firstChild as Element) + pointerDown(container.firstChild as Element) logOpacity() // 1 // Trigger mouse up - mouseUp(container.firstChild as Element) + pointerUp(container.firstChild as Element) logOpacity() // 0.5 resolve(opacityHistory) @@ -262,12 +262,12 @@ describe("press", () => { logOpacity() // 0.5 // Trigger mouse down - mouseDown(getByTestId("child") as Element) + pointerDown(getByTestId("child") as Element) logOpacity() // 1 // Trigger mouse up - mouseUp(getByTestId("child") as Element) + pointerUp(getByTestId("child") as Element) logOpacity() // 0.5 resolve(opacityHistory) }) @@ -305,7 +305,7 @@ describe("press", () => { const { getByTestId } = render() // Trigger mouse down - mouseDown(getByTestId("a") as Element) + pointerDown(getByTestId("a") as Element) setTimeout( () => resolve([ @@ -353,11 +353,11 @@ describe("press", () => { // logOpacity() // 0.5 // // Trigger mouse down - // fireEvent.mouseDown(getByTestId("child") as Element) + // fireEvent.pointerDown(getByTestId("child") as Element) // logOpacity() // 1 // // Trigger mouse up - // fireEvent.mouseUp(getByTestId("child") as Element) + // fireEvent.pointerUp(getByTestId("child") as Element) // logOpacity() // 0.5 // resolve(opacityHistory) @@ -387,35 +387,35 @@ describe("press", () => { logOpacity() // 0.5 // Trigger hover - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) logOpacity() // 0.75 // Trigger mouse down - fireEvent.mouseDown(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) logOpacity() // 1 // Trigger mouse up - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) logOpacity() // 0.75 // Trigger hover end - mouseLeave(container.firstChild as Element) + pointerLeave(container.firstChild as Element) logOpacity() // Trigger hover - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) logOpacity() // Trigger mouse down - fireEvent.mouseDown(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) logOpacity() // Trigger hover end - mouseLeave(container.firstChild as Element) + pointerLeave(container.firstChild as Element) logOpacity() // Trigger mouse up - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) logOpacity() resolve(opacityHistory) @@ -452,37 +452,37 @@ describe("press", () => { logOpacity() // 0.5 // Trigger hover - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) logOpacity() // 0.75 // Trigger mouse down - fireEvent.mouseDown(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) logOpacity() // 1 rerender() rerender() // Trigger mouse up - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) logOpacity() // 1 // Trigger hover end - mouseLeave(container.firstChild as Element) + pointerLeave(container.firstChild as Element) logOpacity() // 1 // Trigger hover - mouseEnter(container.firstChild as Element) + pointerEnter(container.firstChild as Element) logOpacity() // 1 // Trigger mouse down - fireEvent.mouseDown(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) logOpacity() // 1 // Trigger hover end - mouseLeave(container.firstChild as Element) + pointerLeave(container.firstChild as Element) logOpacity() // 1 // Trigger mouse up - fireEvent.mouseUp(container.firstChild as Element) + fireEvent.pointerUp(container.firstChild as Element) logOpacity() // 1 resolve(opacityHistory) diff --git a/packages/framer-motion/src/gestures/drag/__tests__/index.test.tsx b/packages/framer-motion/src/gestures/drag/__tests__/index.test.tsx index a35ecab987..dfad6dde8d 100644 --- a/packages/framer-motion/src/gestures/drag/__tests__/index.test.tsx +++ b/packages/framer-motion/src/gestures/drag/__tests__/index.test.tsx @@ -823,7 +823,7 @@ describe("dragging", () => { pointer.end() lastX = x.get() - fireEvent.mouseDown(container.firstChild as Element) + fireEvent.pointerDown(container.firstChild as Element) await sleep(20) expect(x.get()).toBe(lastX) diff --git a/packages/framer-motion/src/gestures/drag/__tests__/utils.tsx b/packages/framer-motion/src/gestures/drag/__tests__/utils.tsx index 712490f753..c5e77f5a55 100644 --- a/packages/framer-motion/src/gestures/drag/__tests__/utils.tsx +++ b/packages/framer-motion/src/gestures/drag/__tests__/utils.tsx @@ -34,7 +34,7 @@ export function deferred(): Deferred { export const drag = (element: any, triggerElement?: any) => { pos.x = 0 pos.y = 0 - fireEvent.mouseDown(triggerElement || element) + fireEvent.pointerDown(triggerElement || element) const controls = { to: async (x: number, y: number) => { @@ -49,7 +49,7 @@ export const drag = (element: any, triggerElement?: any) => { return controls }, end: () => { - fireEvent.mouseUp(element) + fireEvent.pointerUp(element) }, } diff --git a/packages/framer-motion/src/motion/__tests__/component.test.tsx b/packages/framer-motion/src/motion/__tests__/component.test.tsx index 25d4d98657..a94ad0de08 100644 --- a/packages/framer-motion/src/motion/__tests__/component.test.tsx +++ b/packages/framer-motion/src/motion/__tests__/component.test.tsx @@ -94,8 +94,8 @@ describe("motion component rendering and styles", () => { /> ) - fireEvent.mouseEnter(container.firstChild as Element) - fireEvent.mouseLeave(container.firstChild as Element) + fireEvent.pointerEnter(container.firstChild as Element) + fireEvent.pointerLeave(container.firstChild as Element) expect(onMouseEnter).toBeCalled() expect(onMouseLeave).toBeCalled() diff --git a/packages/framer-motion/src/motion/__tests__/variant.test.tsx b/packages/framer-motion/src/motion/__tests__/variant.test.tsx index e92b15f541..737a82eead 100644 --- a/packages/framer-motion/src/motion/__tests__/variant.test.tsx +++ b/packages/framer-motion/src/motion/__tests__/variant.test.tsx @@ -1,4 +1,9 @@ -import { mouseDown, mouseEnter, mouseUp, render } from "../../../jest.setup" +import { + pointerDown, + pointerEnter, + pointerUp, + render, +} from "../../../jest.setup" import { motion, MotionConfig, useMotionValue } from "../../" import * as React from "react" import { Variants } from "../../types" @@ -969,14 +974,14 @@ describe("animate prop as variant", () => { const inner = getByTestId("inner") expect(inner).toHaveStyle("background-color: rgb(255,255,0)") - mouseEnter(getByTestId("parent")) + pointerEnter(getByTestId("parent")) await wait(20) expect(inner).toHaveStyle("background-color: rgb(150,150,0)") - mouseDown(getByTestId("variant-trigger")) - mouseUp(getByTestId("variant-trigger")) + pointerDown(getByTestId("variant-trigger")) + pointerUp(getByTestId("variant-trigger")) await wait(20)