1
- let act , asyncAct
1
+ let act , asyncAct , React , consoleErrorMock
2
2
3
3
beforeEach ( ( ) => {
4
4
jest . resetModules ( )
5
5
act = require ( '../pure' ) . act
6
6
asyncAct = require ( '../act-compat' ) . asyncAct
7
- jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
7
+ React = require ( 'react' )
8
+ consoleErrorMock = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
8
9
} )
9
10
10
11
afterEach ( ( ) => {
11
- console . error . mockRestore ( )
12
+ consoleErrorMock . mockRestore ( )
12
13
} )
13
14
14
15
jest . mock ( 'react-dom/test-utils' , ( ) => ( { } ) )
@@ -17,7 +18,10 @@ test('act works even when there is no act from test utils', () => {
17
18
const callback = jest . fn ( )
18
19
act ( callback )
19
20
expect ( callback ) . toHaveBeenCalledTimes ( 1 )
20
- expect ( console . error ) . toHaveBeenCalledTimes ( 0 )
21
+ expect ( console . error ) . toHaveBeenCalledTimes (
22
+ // ReactDOM.render is deprecated in React 18
23
+ React . version . startsWith ( '18' ) ? 1 : 0 ,
24
+ )
21
25
} )
22
26
23
27
test ( 'async act works when it does not exist (older versions of react)' , async ( ) => {
@@ -26,7 +30,10 @@ test('async act works when it does not exist (older versions of react)', async (
26
30
await Promise . resolve ( )
27
31
await callback ( )
28
32
} )
29
- expect ( console . error ) . toHaveBeenCalledTimes ( 0 )
33
+ expect ( console . error ) . toHaveBeenCalledTimes (
34
+ // ReactDOM.render is deprecated in React 18
35
+ React . version . startsWith ( '18' ) ? 2 : 0 ,
36
+ )
30
37
expect ( callback ) . toHaveBeenCalledTimes ( 1 )
31
38
32
39
callback . mockClear ( )
@@ -36,7 +43,10 @@ test('async act works when it does not exist (older versions of react)', async (
36
43
await Promise . resolve ( )
37
44
await callback ( )
38
45
} )
39
- expect ( console . error ) . toHaveBeenCalledTimes ( 0 )
46
+ expect ( console . error ) . toHaveBeenCalledTimes (
47
+ // ReactDOM.render is deprecated in React 18
48
+ React . version . startsWith ( '18' ) ? 2 : 0 ,
49
+ )
40
50
expect ( callback ) . toHaveBeenCalledTimes ( 1 )
41
51
} )
42
52
@@ -49,14 +59,16 @@ test('async act recovers from errors', async () => {
49
59
} catch ( err ) {
50
60
console . error ( 'call console.error' )
51
61
}
52
- expect ( console . error ) . toHaveBeenCalledTimes ( 1 )
53
- expect ( console . error . mock . calls ) . toMatchInlineSnapshot ( `
54
- Array [
55
- Array [
56
- call console.error,
57
- ],
58
- ]
59
- ` )
62
+ expect ( console . error ) . toHaveBeenCalledTimes (
63
+ // ReactDOM.render is deprecated in React 18
64
+ React . version . startsWith ( '18' ) ? 2 : 1 ,
65
+ )
66
+ expect (
67
+ console . error . mock . calls [
68
+ // ReactDOM.render is deprecated in React 18
69
+ React . version . startsWith ( '18' ) ? 1 : 0
70
+ ] [ 0 ] ,
71
+ ) . toMatch ( 'call console.error' )
60
72
} )
61
73
62
74
test ( 'async act recovers from sync errors' , async ( ) => {
0 commit comments