testing-library / user-event

🐕 Simulate user events
https://testing-library.com/user-event
MIT License
2.19k stars 249 forks source link

Mouseleave event returns incorrect relatedTarget #1182

Open MichailShcherbakov opened 11 months ago

MichailShcherbakov commented 11 months ago

Reproduction example

https://codesandbox.io/p/sandbox/old-butterfly-239l2c?file=%2Fsrc%2FApp.test.js%3A4%2C37

Prerequisites

  1. Render the structure below
<div>
      <p data-testid="text1" onMouseLeave={onMouseLeave}>text1</p>
      <p data-testid="text2">text2</p>
</div>
  1. Find these fields
  const text1 = screen.getByTestId('text1')
  const text2 = screen.getByTestId('text2')
  1. Move the cursor
await user.pointer([{target: text1}, {target: text2}])

Expected behavior

event.relatedTarget should be <p data-testid="text2">text2</p>

Actual behavior

event.relatedTarget is global

User-event version

14.5.1

Environment

Testing Library framework: @testing-library/react@14.1.2

JS framework: react@18.2.0

Test environment: vitest@1.0.4

DOM implementation: jsdom@23.0.1

Additional context

No response