11
11
12
12
'use strict' ;
13
13
14
- import * as React from 'react' ;
14
+ const React = require ( 'react' ) ;
15
+ const Scheduler = require ( 'scheduler' ) ;
15
16
16
17
import * as ReactART from 'react-art' ;
17
18
import ARTSVGMode from 'art/modes/svg' ;
@@ -22,22 +23,28 @@ import Circle from 'react-art/Circle';
22
23
import Rectangle from 'react-art/Rectangle' ;
23
24
import Wedge from 'react-art/Wedge' ;
24
25
26
+ const { act, waitFor} = require ( 'internal-test-utils' ) ;
27
+
25
28
// Isolate DOM renderer.
26
29
jest . resetModules ( ) ;
30
+ // share isomorphic
31
+ jest . mock ( 'scheduler' , ( ) => Scheduler ) ;
32
+ jest . mock ( 'react' , ( ) => React ) ;
33
+ const ReactDOM = require ( 'react-dom' ) ;
27
34
const ReactDOMClient = require ( 'react-dom/client' ) ;
28
- let act = require ( 'internal-test-utils' ) . act ;
29
35
30
36
// Isolate the noop renderer
31
37
jest . resetModules ( ) ;
38
+ // share isomorphic
39
+ jest . mock ( 'scheduler' , ( ) => Scheduler ) ;
40
+ jest . mock ( 'react' , ( ) => React ) ;
32
41
const ReactNoop = require ( 'react-noop-renderer' ) ;
33
- const Scheduler = require ( 'scheduler' ) ;
34
42
35
43
let Group ;
36
44
let Shape ;
37
45
let Surface ;
38
46
let TestComponent ;
39
47
40
- let waitFor ;
41
48
let groupRef ;
42
49
43
50
const Missing = { } ;
@@ -68,6 +75,11 @@ describe('ReactART', () => {
68
75
let container ;
69
76
70
77
beforeEach ( ( ) => {
78
+ jest . resetModules ( ) ;
79
+ // share isomorphic
80
+ jest . mock ( 'scheduler' , ( ) => Scheduler ) ;
81
+ jest . mock ( 'react' , ( ) => React ) ;
82
+
71
83
container = document . createElement ( 'div' ) ;
72
84
document . body . appendChild ( container ) ;
73
85
@@ -77,8 +89,6 @@ describe('ReactART', () => {
77
89
Shape = ReactART . Shape ;
78
90
Surface = ReactART . Surface ;
79
91
80
- ( { waitFor} = require ( 'internal-test-utils' ) ) ;
81
-
82
92
groupRef = React . createRef ( ) ;
83
93
TestComponent = class extends React . Component {
84
94
group = groupRef ;
@@ -409,8 +419,6 @@ describe('ReactART', () => {
409
419
) ;
410
420
}
411
421
412
- // Using test renderer instead of the DOM renderer here because async
413
- // testing APIs for the DOM renderer don't exist.
414
422
ReactNoop . render (
415
423
< CurrentRendererContext . Provider value = "Test" >
416
424
< Yield value = "A" />
@@ -423,7 +431,9 @@ describe('ReactART', () => {
423
431
await waitFor ( [ 'A' ] ) ;
424
432
425
433
const root = ReactDOMClient . createRoot ( container ) ;
426
- await act ( ( ) => {
434
+ // We use flush sync here because we expect this to render in between
435
+ // while the concurrent render is yieldy where as act would flush both.
436
+ ReactDOM . flushSync ( ( ) => {
427
437
root . render (
428
438
< Surface >
429
439
< LogCurrentRenderer />
@@ -434,8 +444,6 @@ describe('ReactART', () => {
434
444
) ;
435
445
} ) ;
436
446
437
- expect ( ops ) . toEqual ( [ null , 'ART' ] ) ;
438
-
439
447
ops = [ ] ;
440
448
await waitFor ( [ 'B' , 'C' ] ) ;
441
449
@@ -447,9 +455,11 @@ describe('ReactARTComponents', () => {
447
455
let ReactTestRenderer ;
448
456
beforeEach ( ( ) => {
449
457
jest . resetModules ( ) ;
458
+ // share isomorphic
459
+ jest . mock ( 'scheduler' , ( ) => Scheduler ) ;
460
+ jest . mock ( 'react' , ( ) => React ) ;
450
461
// Isolate test renderer.
451
462
ReactTestRenderer = require ( 'react-test-renderer' ) ;
452
- act = require ( 'internal-test-utils' ) . act ;
453
463
} ) ;
454
464
455
465
it ( 'should generate a <Shape> with props for drawing the Circle' , async ( ) => {
0 commit comments