Skip to content

Commit 009df29

Browse files
eps1longaearon
authored andcommitted
Convert SyntheticClipboardEvent to createRoot (#28174)
1 parent d0aa081 commit 009df29

File tree

1 file changed

+40
-24
lines changed

1 file changed

+40
-24
lines changed

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

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@
1010
'use strict';
1111

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

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

1819
beforeEach(() => {
1920
React = require('react');
20-
ReactDOM = require('react-dom');
21+
ReactDOMClient = require('react-dom/client');
22+
act = require('internal-test-utils').act;
2123

2224
// The container has to be attached for events to fire.
2325
container = document.createElement('div');
@@ -32,7 +34,7 @@ describe('SyntheticClipboardEvent', () => {
3234
describe('ClipboardEvent interface', () => {
3335
describe('clipboardData', () => {
3436
describe('when event has clipboardData', () => {
35-
it("returns event's clipboardData", () => {
37+
it("returns event's clipboardData", async () => {
3638
let expectedCount = 0;
3739

3840
// Mock clipboardData since jsdom implementation doesn't have a constructor
@@ -47,30 +49,39 @@ describe('SyntheticClipboardEvent', () => {
4749
expect(event.clipboardData).toBe(clipboardData);
4850
expectedCount++;
4951
};
50-
const div = ReactDOM.render(
51-
<div
52-
onCopy={eventHandler}
53-
onCut={eventHandler}
54-
onPaste={eventHandler}
55-
/>,
56-
container,
57-
);
52+
const root = ReactDOMClient.createRoot(container);
53+
await act(() => {
54+
root.render(
55+
<div
56+
onCopy={eventHandler}
57+
onCut={eventHandler}
58+
onPaste={eventHandler}
59+
/>,
60+
);
61+
});
62+
63+
const div = container.firstChild;
5864

5965
let event;
6066
event = document.createEvent('Event');
6167
event.initEvent('copy', true, true);
6268
event.clipboardData = clipboardData;
63-
div.dispatchEvent(event);
64-
69+
await act(() => {
70+
div.dispatchEvent(event);
71+
});
6572
event = document.createEvent('Event');
6673
event.initEvent('cut', true, true);
6774
event.clipboardData = clipboardData;
68-
div.dispatchEvent(event);
75+
await act(() => {
76+
div.dispatchEvent(event);
77+
});
6978

7079
event = document.createEvent('Event');
7180
event.initEvent('paste', true, true);
7281
event.clipboardData = clipboardData;
73-
div.dispatchEvent(event);
82+
await act(() => {
83+
div.dispatchEvent(event);
84+
});
7485

7586
expect(expectedCount).toBe(3);
7687
});
@@ -79,7 +90,7 @@ describe('SyntheticClipboardEvent', () => {
7990
});
8091

8192
describe('EventInterface', () => {
82-
it('is able to `preventDefault` and `stopPropagation`', () => {
93+
it('is able to `preventDefault` and `stopPropagation`', async () => {
8394
let expectedCount = 0;
8495

8596
const eventHandler = event => {
@@ -92,14 +103,19 @@ describe('SyntheticClipboardEvent', () => {
92103
expectedCount++;
93104
};
94105

95-
const div = ReactDOM.render(
96-
<div
97-
onCopy={eventHandler}
98-
onCut={eventHandler}
99-
onPaste={eventHandler}
100-
/>,
101-
container,
102-
);
106+
const root = ReactDOMClient.createRoot(container);
107+
108+
await act(() => {
109+
root.render(
110+
<div
111+
onCopy={eventHandler}
112+
onCut={eventHandler}
113+
onPaste={eventHandler}
114+
/>,
115+
);
116+
});
117+
118+
const div = container.firstChild;
103119

104120
let event;
105121
event = document.createEvent('Event');

0 commit comments

Comments
 (0)