Skip to content

Commit 83309df

Browse files
eps1lonAndyPengc12
authored andcommitted
Convert ReactDOMSelection to createRoot (facebook#28176)
1 parent c9d6da9 commit 83309df

File tree

1 file changed

+40
-34
lines changed

1 file changed

+40
-34
lines changed

packages/react-dom/src/__tests__/ReactDOMSelection-test.internal.js

+40-34
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,18 @@
1010
'use strict';
1111

1212
let React;
13-
let ReactDOM;
13+
let ReactDOMClient;
1414
let ReactDOMSelection;
15+
let act;
1516

1617
let getModernOffsetsFromPoints;
1718

1819
describe('ReactDOMSelection', () => {
1920
beforeEach(() => {
2021
React = require('react');
21-
ReactDOM = require('react-dom');
22+
ReactDOMClient = require('react-dom/client');
2223
ReactDOMSelection = require('react-dom-bindings/src/client/ReactDOMSelection');
24+
act = require('internal-test-utils').act;
2325

2426
({getModernOffsetsFromPoints} = ReactDOMSelection);
2527
});
@@ -74,53 +76,57 @@ describe('ReactDOMSelection', () => {
7476

7577
// Complicated example derived from a real-world DOM tree. Has a bit of
7678
// 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(
8084
<div>
81-
<div>
82-
<div>xxxxxxxxxxxxxxxxxxxx</div>
83-
</div>
84-
x
8585
<div>
8686
<div>
87-
x
87+
<div>xxxxxxxxxxxxxxxxxxxx</div>
88+
</div>
89+
x
90+
<div>
8891
<div>
92+
x
8993
<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>
94100
</div>
95101
</div>
96102
</div>
103+
<div />
97104
</div>
98-
<div />
99-
</div>
100-
<div>
101105
<div>
102106
<div>
103-
<div>xxxx</div>
104-
<div>xxxxxxxxxxxxxxxxxxx</div>
107+
<div>
108+
<div>xxxx</div>
109+
<div>xxxxxxxxxxxxxxxxxxx</div>
110+
</div>
105111
</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>
111115
<div>
112116
<div>
113-
<div>{['x', 'x', 'xxx']}</div>
117+
<div>
118+
<div>{['x', 'x', 'xxx']}</div>
119+
</div>
114120
</div>
115121
</div>
116122
</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;
124130
}
125131

126132
it('returns correctly for base case', () => {
@@ -135,8 +141,8 @@ describe('ReactDOMSelection', () => {
135141
});
136142
});
137143

138-
it('returns correctly for fuzz test', () => {
139-
const fixtureRoot = getFixture();
144+
it('returns correctly for fuzz test', async () => {
145+
const fixtureRoot = await getFixture();
140146
const allNodes = [fixtureRoot].concat(
141147
Array.from(fixtureRoot.querySelectorAll('*')),
142148
);

0 commit comments

Comments
 (0)