1010'use strict' ; 
1111
1212const  React  =  require ( 'react' ) ; 
13- const  ReactDOM  =  require ( 'react-dom' ) ; 
13+ const  ReactDOMClient  =  require ( 'react-dom/client ' ) ; 
1414const  ReactDOMServer  =  require ( 'react-dom/server' ) ; 
15+ const  act  =  require ( 'internal-test-utils' ) . act ; 
1516
1617describe ( 'CSSPropertyOperations' ,  ( )  =>  { 
1718  it ( 'should automatically append `px` to relevant styles' ,  ( )  =>  { 
@@ -66,15 +67,19 @@ describe('CSSPropertyOperations', () => {
6667    expect ( html ) . toContain ( '"--someColor:#000000"' ) ; 
6768  } ) ; 
6869
69-   it ( 'should set style attribute when styles exist' ,  ( )  =>  { 
70+   it ( 'should set style attribute when styles exist' ,  async   ( )  =>  { 
7071    const  styles  =  { 
7172      backgroundColor : '#000' , 
7273      display : 'none' , 
7374    } ; 
74-     let  div  =  < div  style = { styles }  /> ; 
75-     const  root  =  document . createElement ( 'div' ) ; 
76-     div  =  ReactDOM . render ( div ,  root ) ; 
77-     expect ( / s t y l e = " .* " / . test ( root . innerHTML ) ) . toBe ( true ) ; 
75+     const  container  =  document . createElement ( 'div' ) ; 
76+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
77+     await  act ( ( )  =>  { 
78+       root . render ( < div  style = { styles }  /> ) ; 
79+     } ) ; 
80+ 
81+     const  div  =  container . firstChild ; 
82+     expect ( / s t y l e = " .* " / . test ( container . innerHTML ) ) . toBe ( true ) ; 
7883  } ) ; 
7984
8085  it ( 'should not set style attribute when no styles exist' ,  ( )  =>  { 
@@ -87,7 +92,7 @@ describe('CSSPropertyOperations', () => {
8792    expect ( / s t y l e = / . test ( html ) ) . toBe ( false ) ; 
8893  } ) ; 
8994
90-   it ( 'should warn when using hyphenated style names' ,  ( )  =>  { 
95+   it ( 'should warn when using hyphenated style names' ,  async   ( )  =>  { 
9196    class  Comp  extends  React . Component  { 
9297      static  displayName  =  'Comp' ; 
9398
@@ -96,16 +101,20 @@ describe('CSSPropertyOperations', () => {
96101      } 
97102    } 
98103
99-     const  root  =  document . createElement ( 'div' ) ; 
100- 
101-     expect ( ( )  =>  ReactDOM . render ( < Comp  /> ,  root ) ) . toErrorDev ( 
104+     const  container  =  document . createElement ( 'div' ) ; 
105+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
106+     await  expect ( async  ( )  =>  { 
107+       await  act ( ( )  =>  { 
108+         root . render ( < Comp  /> ) ; 
109+       } ) ; 
110+     } ) . toErrorDev ( 
102111      'Warning: Unsupported style property background-color. Did you mean backgroundColor?'  + 
103112        '\n    in div (at **)'  + 
104113        '\n    in Comp (at **)' , 
105114    ) ; 
106115  } ) ; 
107116
108-   it ( 'should warn when updating hyphenated style names' ,  ( )  =>  { 
117+   it ( 'should warn when updating hyphenated style names' ,  async   ( )  =>  { 
109118    class  Comp  extends  React . Component  { 
110119      static  displayName  =  'Comp' ; 
111120
@@ -118,10 +127,16 @@ describe('CSSPropertyOperations', () => {
118127      '-ms-transform' : 'translate3d(0, 0, 0)' , 
119128      '-webkit-transform' : 'translate3d(0, 0, 0)' , 
120129    } ; 
121-     const  root  =  document . createElement ( 'div' ) ; 
122-     ReactDOM . render ( < Comp  /> ,  root ) ; 
123- 
124-     expect ( ( )  =>  ReactDOM . render ( < Comp  style = { styles }  /> ,  root ) ) . toErrorDev ( [ 
130+     const  container  =  document . createElement ( 'div' ) ; 
131+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
132+     await  act ( ( )  =>  { 
133+       root . render ( < Comp  /> ) ; 
134+     } ) ; 
135+     await  expect ( async  ( )  =>  { 
136+       await  act ( ( )  =>  { 
137+         root . render ( < Comp  style = { styles }  /> ) ; 
138+       } ) ; 
139+     } ) . toErrorDev ( [ 
125140      'Warning: Unsupported style property -ms-transform. Did you mean msTransform?'  + 
126141        '\n    in div (at **)'  + 
127142        '\n    in Comp (at **)' , 
@@ -131,7 +146,7 @@ describe('CSSPropertyOperations', () => {
131146    ] ) ; 
132147  } ) ; 
133148
134-   it ( 'warns when miscapitalizing vendored style names' ,  ( )  =>  { 
149+   it ( 'warns when miscapitalizing vendored style names' ,  async   ( )  =>  { 
135150    class  Comp  extends  React . Component  { 
136151      static  displayName  =  'Comp' ; 
137152
@@ -148,9 +163,13 @@ describe('CSSPropertyOperations', () => {
148163      } 
149164    } 
150165
151-     const  root  =  document . createElement ( 'div' ) ; 
152- 
153-     expect ( ( )  =>  ReactDOM . render ( < Comp  /> ,  root ) ) . toErrorDev ( [ 
166+     const  container  =  document . createElement ( 'div' ) ; 
167+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
168+     await  expect ( async  ( )  =>  { 
169+       await  act ( ( )  =>  { 
170+         root . render ( < Comp  /> ) ; 
171+       } ) ; 
172+     } ) . toErrorDev ( [ 
154173      // msTransform is correct already and shouldn't warn 
155174      'Warning: Unsupported vendor-prefixed style property oTransform. '  + 
156175        'Did you mean OTransform?'  + 
@@ -163,7 +182,7 @@ describe('CSSPropertyOperations', () => {
163182    ] ) ; 
164183  } ) ; 
165184
166-   it ( 'should warn about style having a trailing semicolon' ,  ( )  =>  { 
185+   it ( 'should warn about style having a trailing semicolon' ,  async   ( )  =>  { 
167186    class  Comp  extends  React . Component  { 
168187      static  displayName  =  'Comp' ; 
169188
@@ -181,9 +200,13 @@ describe('CSSPropertyOperations', () => {
181200      } 
182201    } 
183202
184-     const  root  =  document . createElement ( 'div' ) ; 
185- 
186-     expect ( ( )  =>  ReactDOM . render ( < Comp  /> ,  root ) ) . toErrorDev ( [ 
203+     const  container  =  document . createElement ( 'div' ) ; 
204+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
205+     await  expect ( async  ( )  =>  { 
206+       await  act ( ( )  =>  { 
207+         root . render ( < Comp  /> ) ; 
208+       } ) ; 
209+     } ) . toErrorDev ( [ 
187210      "Warning: Style property values shouldn't contain a semicolon. "  + 
188211        'Try "backgroundColor: blue" instead.'  + 
189212        '\n    in div (at **)'  + 
@@ -195,7 +218,7 @@ describe('CSSPropertyOperations', () => {
195218    ] ) ; 
196219  } ) ; 
197220
198-   it ( 'should warn about style containing a NaN value' ,  ( )  =>  { 
221+   it ( 'should warn about style containing a NaN value' ,  async   ( )  =>  { 
199222    class  Comp  extends  React . Component  { 
200223      static  displayName  =  'Comp' ; 
201224
@@ -204,27 +227,34 @@ describe('CSSPropertyOperations', () => {
204227      } 
205228    } 
206229
207-     const  root  =  document . createElement ( 'div' ) ; 
208- 
209-     expect ( ( )  =>  ReactDOM . render ( < Comp  /> ,  root ) ) . toErrorDev ( 
230+     const  container  =  document . createElement ( 'div' ) ; 
231+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
232+     await  expect ( async  ( )  =>  { 
233+       await  act ( ( )  =>  { 
234+         root . render ( < Comp  /> ) ; 
235+       } ) ; 
236+     } ) . toErrorDev ( 
210237      'Warning: `NaN` is an invalid value for the `fontSize` css style property.'  + 
211238        '\n    in div (at **)'  + 
212239        '\n    in Comp (at **)' , 
213240    ) ; 
214241  } ) ; 
215242
216-   it ( 'should not warn when setting CSS custom properties' ,  ( )  =>  { 
243+   it ( 'should not warn when setting CSS custom properties' ,  async   ( )  =>  { 
217244    class  Comp  extends  React . Component  { 
218245      render ( )  { 
219246        return  < div  style = { { '--foo-primary' : 'red' ,  backgroundColor : 'red' } }  /> ; 
220247      } 
221248    } 
222249
223-     const  root  =  document . createElement ( 'div' ) ; 
224-     ReactDOM . render ( < Comp  /> ,  root ) ; 
250+     const  container  =  document . createElement ( 'div' ) ; 
251+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
252+     await  act ( ( )  =>  { 
253+       root . render ( < Comp  /> ) ; 
254+     } ) ; 
225255  } ) ; 
226256
227-   it ( 'should warn about style containing an Infinity value' ,  ( )  =>  { 
257+   it ( 'should warn about style containing an Infinity value' ,  async   ( )  =>  { 
228258    class  Comp  extends  React . Component  { 
229259      static  displayName  =  'Comp' ; 
230260
@@ -233,25 +263,32 @@ describe('CSSPropertyOperations', () => {
233263      } 
234264    } 
235265
236-     const  root  =  document . createElement ( 'div' ) ; 
237- 
238-     expect ( ( )  =>  ReactDOM . render ( < Comp  /> ,  root ) ) . toErrorDev ( 
266+     const  container  =  document . createElement ( 'div' ) ; 
267+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
268+     await  expect ( async  ( )  =>  { 
269+       await  act ( ( )  =>  { 
270+         root . render ( < Comp  /> ) ; 
271+       } ) ; 
272+     } ) . toErrorDev ( 
239273      'Warning: `Infinity` is an invalid value for the `fontSize` css style property.'  + 
240274        '\n    in div (at **)'  + 
241275        '\n    in Comp (at **)' , 
242276    ) ; 
243277  } ) ; 
244278
245-   it ( 'should not add units to CSS custom properties' ,  ( )  =>  { 
279+   it ( 'should not add units to CSS custom properties' ,  async   ( )  =>  { 
246280    class  Comp  extends  React . Component  { 
247281      render ( )  { 
248282        return  < div  style = { { '--foo' : '5' } }  /> ; 
249283      } 
250284    } 
251285
252-     const  root  =  document . createElement ( 'div' ) ; 
253-     ReactDOM . render ( < Comp  /> ,  root ) ; 
286+     const  container  =  document . createElement ( 'div' ) ; 
287+     const  root  =  ReactDOMClient . createRoot ( container ) ; 
288+     await  act ( ( )  =>  { 
289+       root . render ( < Comp  /> ) ; 
290+     } ) ; 
254291
255-     expect ( root . children [ 0 ] . style . getPropertyValue ( '--foo' ) ) . toEqual ( '5' ) ; 
292+     expect ( container . children [ 0 ] . style . getPropertyValue ( '--foo' ) ) . toEqual ( '5' ) ; 
256293  } ) ; 
257294} ) ; 
0 commit comments