1010'use strict' ;
1111
1212let React ;
13- let ReactDOM ;
13+ let ReactDOMClient ;
1414let ReactDOMSelection ;
15+ let act ;
1516
1617let getModernOffsetsFromPoints ;
1718
1819describe ( '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