Skip to content

Commit 4b2a111

Browse files
authored
Convert SyntheticMouseEvent to createRoot (#28200)
1 parent b3a79c4 commit 4b2a111

File tree

1 file changed

+41
-23
lines changed

1 file changed

+41
-23
lines changed

packages/react-dom/src/events/__tests__/SyntheticMouseEvent-test.js

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,17 @@
1010
'use strict';
1111

1212
let React;
13-
let ReactDOM;
13+
let ReactDOMClient;
14+
let act;
1415

1516
describe('SyntheticMouseEvent', () => {
1617
let container;
1718

1819
beforeEach(() => {
1920
jest.resetModules();
2021
React = require('react');
21-
ReactDOM = require('react-dom');
22+
ReactDOMClient = require('react-dom/client');
23+
act = require('internal-test-utils').act;
2224

2325
// The container has to be attached for events to fire.
2426
container = document.createElement('div');
@@ -30,7 +32,7 @@ describe('SyntheticMouseEvent', () => {
3032
container = null;
3133
});
3234

33-
it('should only use values from movementX/Y when event type is mousemove', () => {
35+
it('should only use values from movementX/Y when event type is mousemove', async () => {
3436
const events = [];
3537
const onMouseMove = event => {
3638
events.push(event.movementX);
@@ -40,10 +42,11 @@ describe('SyntheticMouseEvent', () => {
4042
events.push(event.movementX);
4143
};
4244

43-
const node = ReactDOM.render(
44-
<div onMouseMove={onMouseMove} onMouseDown={onMouseDown} />,
45-
container,
46-
);
45+
const root = ReactDOMClient.createRoot(container);
46+
await act(() => {
47+
root.render(<div onMouseMove={onMouseMove} onMouseDown={onMouseDown} />);
48+
});
49+
const node = container.firstChild;
4750

4851
let event = new MouseEvent('mousemove', {
4952
relatedTarget: null,
@@ -52,7 +55,9 @@ describe('SyntheticMouseEvent', () => {
5255
screenY: 2,
5356
});
5457

55-
node.dispatchEvent(event);
58+
await act(() => {
59+
node.dispatchEvent(event);
60+
});
5661

5762
event = new MouseEvent('mousemove', {
5863
relatedTarget: null,
@@ -61,7 +66,9 @@ describe('SyntheticMouseEvent', () => {
6166
screenY: 8,
6267
});
6368

64-
node.dispatchEvent(event);
69+
await act(() => {
70+
node.dispatchEvent(event);
71+
});
6572

6673
// Now trigger a mousedown event to see if movementX has changed back to 0
6774
event = new MouseEvent('mousedown', {
@@ -71,15 +78,17 @@ describe('SyntheticMouseEvent', () => {
7178
screenY: 65,
7279
});
7380

74-
node.dispatchEvent(event);
81+
await act(() => {
82+
node.dispatchEvent(event);
83+
});
7584

7685
expect(events.length).toBe(3);
7786
expect(events[0]).toBe(0);
7887
expect(events[1]).toBe(6);
7988
expect(events[2]).toBe(0); // mousedown event should have movementX at 0
8089
});
8190

82-
it('should correctly calculate movementX/Y for capture phase', () => {
91+
it('should correctly calculate movementX/Y for capture phase', async () => {
8392
const events = [];
8493
const onMouseMove = event => {
8594
events.push(['move', false, event.movementX, event.movementY]);
@@ -94,15 +103,18 @@ describe('SyntheticMouseEvent', () => {
94103
events.push(['down', true, event.movementX, event.movementY]);
95104
};
96105

97-
const node = ReactDOM.render(
98-
<div
99-
onMouseMove={onMouseMove}
100-
onMouseMoveCapture={onMouseMoveCapture}
101-
onMouseDown={onMouseDown}
102-
onMouseDownCapture={onMouseDownCapture}
103-
/>,
104-
container,
105-
);
106+
const root = ReactDOMClient.createRoot(container);
107+
await act(() => {
108+
root.render(
109+
<div
110+
onMouseMove={onMouseMove}
111+
onMouseMoveCapture={onMouseMoveCapture}
112+
onMouseDown={onMouseDown}
113+
onMouseDownCapture={onMouseDownCapture}
114+
/>,
115+
);
116+
});
117+
const node = container.firstChild;
106118

107119
let event = new MouseEvent('mousemove', {
108120
relatedTarget: null,
@@ -111,7 +123,9 @@ describe('SyntheticMouseEvent', () => {
111123
screenY: 2,
112124
});
113125

114-
node.dispatchEvent(event);
126+
await act(() => {
127+
node.dispatchEvent(event);
128+
});
115129

116130
event = new MouseEvent('mousemove', {
117131
relatedTarget: null,
@@ -120,7 +134,9 @@ describe('SyntheticMouseEvent', () => {
120134
screenY: 9,
121135
});
122136

123-
node.dispatchEvent(event);
137+
await act(() => {
138+
node.dispatchEvent(event);
139+
});
124140

125141
// Now trigger a mousedown event to see if movementX has changed back to 0
126142
event = new MouseEvent('mousedown', {
@@ -130,7 +146,9 @@ describe('SyntheticMouseEvent', () => {
130146
screenY: 65,
131147
});
132148

133-
node.dispatchEvent(event);
149+
await act(() => {
150+
node.dispatchEvent(event);
151+
});
134152

135153
expect(events).toEqual([
136154
['move', true, 0, 0],

0 commit comments

Comments
 (0)