@@ -24,7 +24,6 @@ import Wedge from 'react-art/Wedge';
2424
2525// Isolate DOM renderer.
2626jest . resetModules ( ) ;
27- const ReactDOM = require ( 'react-dom' ) ;
2827const ReactDOMClient = require ( 'react-dom/client' ) ;
2928const act = require ( 'internal-test-utils' ) . act ;
3029
@@ -178,11 +177,11 @@ describe('ReactART', () => {
178177 testDOMNodeStructure ( realNode , expectedStructure ) ;
179178 } ) ;
180179
181- it ( 'should be able to reorder components' , ( ) => {
182- const instance = ReactDOM . render (
183- < TestComponent flipped = { false } /> ,
184- container ,
185- ) ;
180+ it ( 'should be able to reorder components' , async ( ) => {
181+ const root = ReactDOMClient . createRoot ( container ) ;
182+ await act ( ( ) => {
183+ root . render ( < TestComponent flipped = { false } /> ) ;
184+ } ) ;
186185
187186 const expectedStructure = {
188187 nodeName : 'svg' ,
@@ -200,10 +199,12 @@ describe('ReactART', () => {
200199 ] ,
201200 } ;
202201
203- const realNode = ReactDOM . findDOMNode ( instance ) ;
202+ const realNode = container . firstChild ;
204203 testDOMNodeStructure ( realNode , expectedStructure ) ;
205204
206- ReactDOM . render ( < TestComponent flipped = { true } /> , container ) ;
205+ await act ( ( ) => {
206+ root . render ( < TestComponent flipped = { true } /> ) ;
207+ } ) ;
207208
208209 const expectedNewStructure = {
209210 nodeName : 'svg' ,
@@ -224,7 +225,7 @@ describe('ReactART', () => {
224225 testDOMNodeStructure ( realNode , expectedNewStructure ) ;
225226 } ) ;
226227
227- it ( 'should be able to reorder many components' , ( ) => {
228+ it ( 'should be able to reorder many components' , async ( ) => {
228229 class Component extends React . Component {
229230 render ( ) {
230231 const chars = this . props . chars . split ( '' ) ;
@@ -242,14 +243,17 @@ describe('ReactART', () => {
242243 const before = 'abcdefghijklmnopqrst' ;
243244 const after = 'mxhpgwfralkeoivcstzy' ;
244245
245- let instance = ReactDOM . render ( < Component chars = { before } /> , container ) ;
246- const realNode = ReactDOM . findDOMNode ( instance ) ;
246+ const root = ReactDOMClient . createRoot ( container ) ;
247+ await act ( ( ) => {
248+ root . render ( < Component chars = { before } /> ) ;
249+ } ) ;
250+ const realNode = container . firstChild ;
247251 expect ( realNode . textContent ) . toBe ( before ) ;
248252
249- instance = ReactDOM . render ( < Component chars = { after } /> , container ) ;
253+ await act ( ( ) => {
254+ root . render ( < Component chars = { after } /> ) ;
255+ } ) ;
250256 expect ( realNode . textContent ) . toBe ( after ) ;
251-
252- ReactDOM . unmountComponentAtNode ( container ) ;
253257 } ) ;
254258
255259 it ( 'renders composite with lifecycle inside group' , async ( ) => {
@@ -311,7 +315,7 @@ describe('ReactART', () => {
311315 expect ( ref . constructor ) . toBe ( CustomShape ) ;
312316 } ) ;
313317
314- it ( 'resolves refs before componentDidUpdate' , ( ) => {
318+ it ( 'resolves refs before componentDidUpdate' , async ( ) => {
315319 class CustomShape extends React . Component {
316320 render ( ) {
317321 return < Shape /> ;
@@ -341,24 +345,34 @@ describe('ReactART', () => {
341345 ) ;
342346 }
343347 }
344- ReactDOM . render ( < Outer /> , container ) ;
348+
349+ const root = ReactDOMClient . createRoot ( container ) ;
350+ await act ( ( ) => {
351+ root . render ( < Outer /> ) ;
352+ } ) ;
345353 expect ( ref ) . toBe ( null ) ;
346- ReactDOM . render ( < Outer mountCustomShape = { true } /> , container ) ;
354+
355+ await act ( ( ) => {
356+ root . render ( < Outer mountCustomShape = { true } /> ) ;
357+ } ) ;
347358 expect ( ref . constructor ) . toBe ( CustomShape ) ;
348359 } ) ;
349360
350- it ( 'adds and updates event handlers' , ( ) => {
351- function render ( onClick ) {
352- return ReactDOM . render (
353- < Surface >
354- < Shape onClick = { onClick } />
355- </ Surface > ,
356- container ,
357- ) ;
361+ it ( 'adds and updates event handlers' , async ( ) => {
362+ const root = ReactDOMClient . createRoot ( container ) ;
363+
364+ async function render ( onClick ) {
365+ await act ( ( ) => {
366+ root . render (
367+ < Surface >
368+ < Shape onClick = { onClick } />
369+ </ Surface > ,
370+ ) ;
371+ } ) ;
358372 }
359373
360374 function doClick ( instance ) {
361- const path = ReactDOM . findDOMNode ( instance ) . querySelector ( 'path' ) ;
375+ const path = container . firstChild . querySelector ( 'path' ) ;
362376
363377 path . dispatchEvent (
364378 new MouseEvent ( 'click' , {
@@ -368,12 +382,12 @@ describe('ReactART', () => {
368382 }
369383
370384 const onClick1 = jest . fn ( ) ;
371- let instance = render ( onClick1 ) ;
385+ let instance = await render ( onClick1 ) ;
372386 doClick ( instance ) ;
373387 expect ( onClick1 ) . toBeCalled ( ) ;
374388
375389 const onClick2 = jest . fn ( ) ;
376- instance = render ( onClick2 ) ;
390+ instance = await render ( onClick2 ) ;
377391 doClick ( instance ) ;
378392 expect ( onClick2 ) . toBeCalled ( ) ;
379393 } ) ;
@@ -412,15 +426,17 @@ describe('ReactART', () => {
412426
413427 await waitFor ( [ 'A' ] ) ;
414428
415- ReactDOM . render (
416- < Surface >
417- < LogCurrentRenderer />
418- < CurrentRendererContext . Provider value = "ART" >
429+ const root = ReactDOMClient . createRoot ( container ) ;
430+ await act ( ( ) => {
431+ root . render (
432+ < Surface >
419433 < LogCurrentRenderer />
420- </ CurrentRendererContext . Provider >
421- </ Surface > ,
422- container ,
423- ) ;
434+ < CurrentRendererContext . Provider value = "ART" >
435+ < LogCurrentRenderer />
436+ </ CurrentRendererContext . Provider >
437+ </ Surface > ,
438+ ) ;
439+ } ) ;
424440
425441 expect ( ops ) . toEqual ( [ null , 'ART' ] ) ;
426442
0 commit comments