diff --git a/src/__tests__/mouse-enter-related-target.js b/src/__tests__/mouse-enter-related-target.js
new file mode 100644
index 00000000..f3ffda3d
--- /dev/null
+++ b/src/__tests__/mouse-enter-related-target.js
@@ -0,0 +1,74 @@
+import * as React from 'react'
+import {render, fireEvent, screen} from '../'
+
+test('mouseEnter forwards relatedTarget correctly', () => {
+ const handleMouseEnter = jest.fn()
+
+ render(
Hello
)
+
+ const element = screen.getByText('Hello')
+ const mockRelatedTarget = document.createElement('div')
+
+ fireEvent.mouseEnter(element, {
+ relatedTarget: mockRelatedTarget,
+ })
+
+ expect(handleMouseEnter).toHaveBeenCalledTimes(1)
+ expect(handleMouseEnter.mock.calls[0][0].relatedTarget).toBe(
+ mockRelatedTarget,
+ )
+})
+
+test('mouseOver forwards relatedTarget correctly (for comparison)', () => {
+ const handleMouseOver = jest.fn()
+
+ render(Hello
)
+
+ const element = screen.getByText('Hello')
+ const mockRelatedTarget = document.createElement('div')
+
+ fireEvent.mouseOver(element, {
+ relatedTarget: mockRelatedTarget,
+ })
+
+ expect(handleMouseOver).toHaveBeenCalledTimes(1)
+ expect(handleMouseOver.mock.calls[0][0].relatedTarget).toBe(
+ mockRelatedTarget,
+ )
+})
+
+test('pointerEnter forwards relatedTarget correctly', () => {
+ const handlePointerEnter = jest.fn()
+
+ render(Hello
)
+
+ const element = screen.getByText('Hello')
+ const mockRelatedTarget = document.createElement('div')
+
+ fireEvent.pointerEnter(element, {
+ relatedTarget: mockRelatedTarget,
+ })
+
+ expect(handlePointerEnter).toHaveBeenCalledTimes(1)
+ expect(handlePointerEnter.mock.calls[0][0].relatedTarget).toBe(
+ mockRelatedTarget,
+ )
+})
+
+test('mouseLeave forwards relatedTarget correctly', () => {
+ const handleMouseLeave = jest.fn()
+
+ render(Hello
)
+
+ const element = screen.getByText('Hello')
+ const mockRelatedTarget = document.createElement('div')
+
+ fireEvent.mouseLeave(element, {
+ relatedTarget: mockRelatedTarget,
+ })
+
+ expect(handleMouseLeave).toHaveBeenCalledTimes(1)
+ expect(handleMouseLeave.mock.calls[0][0].relatedTarget).toBe(
+ mockRelatedTarget,
+ )
+})
\ No newline at end of file
diff --git a/src/fire-event.js b/src/fire-event.js
index cb790c7f..a18ac379 100644
--- a/src/fire-event.js
+++ b/src/fire-event.js
@@ -15,24 +15,24 @@ Object.keys(dtlFireEvent).forEach(key => {
// @link https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/events/EnterLeaveEventPlugin.js#L24-L31
const mouseEnter = fireEvent.mouseEnter
const mouseLeave = fireEvent.mouseLeave
-fireEvent.mouseEnter = (...args) => {
- mouseEnter(...args)
- return fireEvent.mouseOver(...args)
+fireEvent.mouseEnter = (node, init) => {
+ mouseEnter(node, init)
+ return fireEvent.mouseOver(node, init)
}
-fireEvent.mouseLeave = (...args) => {
- mouseLeave(...args)
- return fireEvent.mouseOut(...args)
+fireEvent.mouseLeave = (node, init) => {
+ mouseLeave(node, init)
+ return fireEvent.mouseOut(node, init)
}
const pointerEnter = fireEvent.pointerEnter
const pointerLeave = fireEvent.pointerLeave
-fireEvent.pointerEnter = (...args) => {
- pointerEnter(...args)
- return fireEvent.pointerOver(...args)
+fireEvent.pointerEnter = (node, init) => {
+ pointerEnter(node, init)
+ return fireEvent.pointerOver(node, init)
}
-fireEvent.pointerLeave = (...args) => {
- pointerLeave(...args)
- return fireEvent.pointerOut(...args)
+fireEvent.pointerLeave = (node, init) => {
+ pointerLeave(node, init)
+ return fireEvent.pointerOut(node, init)
}
const select = fireEvent.select
@@ -57,13 +57,13 @@ fireEvent.select = (node, init) => {
// @link https://github.com/facebook/react/pull/19186
const blur = fireEvent.blur
const focus = fireEvent.focus
-fireEvent.blur = (...args) => {
- fireEvent.focusOut(...args)
- return blur(...args)
+fireEvent.blur = (node, init) => {
+ fireEvent.focusOut(node, init)
+ return blur(node, init)
}
-fireEvent.focus = (...args) => {
- fireEvent.focusIn(...args)
- return focus(...args)
+fireEvent.focus = (node, init) => {
+ fireEvent.focusIn(node, init)
+ return focus(node, init)
}
export {fireEvent}