Convert ReactDOMSelection to createRoot (#28176)
Sebastian Silbermann committed
Feb 2, 2024 at 08:58 UTC
7f8798a3f2cba588c1b7e5b19d488bce3520f62a
1 file changed
+40
-34
packages/react-dom/src/__tests__/ReactDOMSelection-test.internal.js
+40
-34
@@ -10,16 +10,18 @@
10
'use strict';
11
12
let React;
13
-let ReactDOM;
13
+let ReactDOMClient;
14
let ReactDOMSelection;
15
+let act;
16
17
let getModernOffsetsFromPoints;
18
19
describe('ReactDOMSelection', () => {
20
beforeEach(() => {
21
React = require('react');
21
- ReactDOM = require('react-dom');
22
+ ReactDOMClient = require('react-dom/client');
23
ReactDOMSelection = require('react-dom-bindings/src/client/ReactDOMSelection');
24
+ act = require('internal-test-utils').act;
25
26
({getModernOffsetsFromPoints} = ReactDOMSelection);
27
});
@@ -74,53 +76,57 @@ describe('ReactDOMSelection', () => {
76
77
// Complicated example derived from a real-world DOM tree. Has a bit of
78
// everything.
77
- function getFixture() {
78
- return ReactDOM.render(
79
- <div>
79
+ async function getFixture() {
80
+ const container = document.createElement('div');
81
+ const root = ReactDOMClient.createRoot(container);
82
+ await act(() => {
83
+ root.render(
84
<div>
81
- <div>
82
- <div>xxxxxxxxxxxxxxxxxxxx</div>
83
- </div>
84
- x
85
<div>
86
<div>
87
- x
87
+ <div>xxxxxxxxxxxxxxxxxxxx</div>
88
+ </div>
89
+ x
90
+ <div>
91
<div>
92
+ x
93
<div>
90
- <div>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div>
91
- <div />
92
- <div />
93
- <div>xxxxxxxxxxxxxxxxxx</div>
94
+ <div>
95
+ <div>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div>
96
+ <div />
97
+ <div />
98
+ <div>xxxxxxxxxxxxxxxxxx</div>
99
+ </div>
100
</div>
101
</div>
102
</div>
103
+ <div />
104
</div>
98
- <div />
99
- </div>
100
- <div>
105
<div>
106
<div>
103
- <div>xxxx</div>
104
- <div>xxxxxxxxxxxxxxxxxxx</div>
107
+ <div>
108
+ <div>xxxx</div>
109
+ <div>xxxxxxxxxxxxxxxxxxx</div>
110
+ </div>
111
</div>
106
- </div>
107
- <div>xxx</div>
108
- <div>xxxxx</div>
109
- <div>xxx</div>
110
- <div>
112
+ <div>xxx</div>
113
+ <div>xxxxx</div>
114
+ <div>xxx</div>
115
<div>
116
<div>
113
- <div>{['x', 'x', 'xxx']}</div>
117
+ <div>
118
+ <div>{['x', 'x', 'xxx']}</div>
119
+ </div>
120
</div>
121
</div>
122
</div>
117
- </div>
118
- <div>
119
- <div>xxxxxx</div>
120
- </div>
121
- </div>,
122
- document.createElement('div'),
123
- );
123
+ <div>
124
+ <div>xxxxxx</div>
125
+ </div>
126
+ </div>,
127
+ );
128
+ });
129
+ return container.firstChild;
130
}
131
132
it('returns correctly for base case', () => {
@@ -135,8 +141,8 @@ describe('ReactDOMSelection', () => {
141
});
142
});
143
138
- it('returns correctly for fuzz test', () => {
139
- const fixtureRoot = getFixture();
144
+ it('returns correctly for fuzz test', async () => {
145
+ const fixtureRoot = await getFixture();
146
const allNodes = [fixtureRoot].concat(
147
Array.from(fixtureRoot.querySelectorAll('*')),
148
);