1- let act , asyncAct
1+ let act , asyncAct , React , consoleErrorMock
22
33beforeEach ( ( ) => {
44 jest . resetModules ( )
55 act = require ( '../pure' ) . act
66 asyncAct = require ( '../act-compat' ) . asyncAct
7- jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
7+ React = require ( 'react' )
8+ consoleErrorMock = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
89} )
910
1011afterEach ( ( ) => {
11- console . error . mockRestore ( )
12+ consoleErrorMock . mockRestore ( )
1213} )
1314
1415jest . mock ( 'react-dom/test-utils' , ( ) => ( { } ) )
@@ -17,7 +18,10 @@ test('act works even when there is no act from test utils', () => {
1718 const callback = jest . fn ( )
1819 act ( callback )
1920 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+ )
2125} )
2226
2327test ( '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 (
2630 await Promise . resolve ( )
2731 await callback ( )
2832 } )
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+ )
3037 expect ( callback ) . toHaveBeenCalledTimes ( 1 )
3138
3239 callback . mockClear ( )
@@ -36,7 +43,10 @@ test('async act works when it does not exist (older versions of react)', async (
3643 await Promise . resolve ( )
3744 await callback ( )
3845 } )
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+ )
4050 expect ( callback ) . toHaveBeenCalledTimes ( 1 )
4151} )
4252
@@ -49,14 +59,16 @@ test('async act recovers from errors', async () => {
4959 } catch ( err ) {
5060 console . error ( 'call console.error' )
5161 }
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' )
6072} )
6173
6274test ( 'async act recovers from sync errors' , async ( ) => {
0 commit comments