@@ -14,7 +14,6 @@ describe('React hooks DevTools integration', () => {
14
14
let React ;
15
15
let ReactDebugTools ;
16
16
let ReactTestRenderer ;
17
- let Scheduler ;
18
17
let act ;
19
18
let overrideHookState ;
20
19
let scheduleUpdate ;
@@ -40,15 +39,14 @@ describe('React hooks DevTools integration', () => {
40
39
React = require ( 'react' ) ;
41
40
ReactDebugTools = require ( 'react-debug-tools' ) ;
42
41
ReactTestRenderer = require ( 'react-test-renderer' ) ;
43
- Scheduler = require ( 'scheduler' ) ;
44
42
45
43
const InternalTestUtils = require ( 'internal-test-utils' ) ;
46
44
waitForAll = InternalTestUtils . waitForAll ;
47
45
48
46
act = ReactTestRenderer . act ;
49
47
} ) ;
50
48
51
- it ( 'should support editing useState hooks' , ( ) => {
49
+ it ( 'should support editing useState hooks' , async ( ) => {
52
50
let setCountFn ;
53
51
54
52
function MyComponent ( ) {
@@ -70,14 +68,14 @@ describe('React hooks DevTools integration', () => {
70
68
expect ( stateHook . isStateEditable ) . toBe ( true ) ;
71
69
72
70
if ( __DEV__ ) {
73
- act ( ( ) => overrideHookState ( fiber , stateHook . id , [ ] , 10 ) ) ;
71
+ await act ( ( ) => overrideHookState ( fiber , stateHook . id , [ ] , 10 ) ) ;
74
72
expect ( renderer . toJSON ( ) ) . toEqual ( {
75
73
type : 'div' ,
76
74
props : { } ,
77
75
children : [ 'count:' , '10' ] ,
78
76
} ) ;
79
77
80
- act ( ( ) => setCountFn ( count => count + 1 ) ) ;
78
+ await act ( ( ) => setCountFn ( count => count + 1 ) ) ;
81
79
expect ( renderer . toJSON ( ) ) . toEqual ( {
82
80
type : 'div' ,
83
81
props : { } ,
@@ -86,7 +84,7 @@ describe('React hooks DevTools integration', () => {
86
84
}
87
85
} ) ;
88
86
89
- it ( 'should support editable useReducer hooks' , ( ) => {
87
+ it ( 'should support editable useReducer hooks' , async ( ) => {
90
88
const initialData = { foo : 'abc' , bar : 123 } ;
91
89
92
90
function reducer ( state , action ) {
@@ -122,14 +120,14 @@ describe('React hooks DevTools integration', () => {
122
120
expect ( reducerHook . isStateEditable ) . toBe ( true ) ;
123
121
124
122
if ( __DEV__ ) {
125
- act ( ( ) => overrideHookState ( fiber , reducerHook . id , [ 'foo' ] , 'def' ) ) ;
123
+ await act ( ( ) => overrideHookState ( fiber , reducerHook . id , [ 'foo' ] , 'def' ) ) ;
126
124
expect ( renderer . toJSON ( ) ) . toEqual ( {
127
125
type : 'div' ,
128
126
props : { } ,
129
127
children : [ 'foo:' , 'def' , ', bar:' , '123' ] ,
130
128
} ) ;
131
129
132
- act ( ( ) => dispatchFn ( { type : 'swap' } ) ) ;
130
+ await act ( ( ) => dispatchFn ( { type : 'swap' } ) ) ;
133
131
expect ( renderer . toJSON ( ) ) . toEqual ( {
134
132
type : 'div' ,
135
133
props : { } ,
@@ -140,7 +138,7 @@ describe('React hooks DevTools integration', () => {
140
138
141
139
// This test case is based on an open source bug report:
142
140
// https://github.com/facebookincubator/redux-react-hook/issues/34#issuecomment-466693787
143
- it ( 'should handle interleaved stateful hooks (e.g. useState) and non-stateful hooks (e.g. useContext)' , ( ) => {
141
+ it ( 'should handle interleaved stateful hooks (e.g. useState) and non-stateful hooks (e.g. useContext)' , async ( ) => {
144
142
const MyContext = React . createContext ( 1 ) ;
145
143
146
144
let setStateFn ;
@@ -170,13 +168,13 @@ describe('React hooks DevTools integration', () => {
170
168
expect ( stateHook . isStateEditable ) . toBe ( true ) ;
171
169
172
170
if ( __DEV__ ) {
173
- act ( ( ) => overrideHookState ( fiber , stateHook . id , [ 'count' ] , 10 ) ) ;
171
+ await act ( ( ) => overrideHookState ( fiber , stateHook . id , [ 'count' ] , 10 ) ) ;
174
172
expect ( renderer . toJSON ( ) ) . toEqual ( {
175
173
type : 'div' ,
176
174
props : { } ,
177
175
children : [ 'count:' , '10' ] ,
178
176
} ) ;
179
- act ( ( ) => setStateFn ( state => ( { count : state . count + 1 } ) ) ) ;
177
+ await act ( ( ) => setStateFn ( state => ( { count : state . count + 1 } ) ) ) ;
180
178
expect ( renderer . toJSON ( ) ) . toEqual ( {
181
179
type : 'div' ,
182
180
props : { } ,
@@ -185,7 +183,7 @@ describe('React hooks DevTools integration', () => {
185
183
}
186
184
} ) ;
187
185
188
- it ( 'should support overriding suspense in legacy mode' , ( ) => {
186
+ it ( 'should support overriding suspense in legacy mode' , async ( ) => {
189
187
if ( __DEV__ ) {
190
188
// Lock the first render
191
189
setSuspenseHandler ( ( ) => true ) ;
@@ -206,32 +204,32 @@ describe('React hooks DevTools integration', () => {
206
204
if ( __DEV__ ) {
207
205
// First render was locked
208
206
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Loading' ] ) ;
209
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
207
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
210
208
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Loading' ] ) ;
211
209
212
210
// Release the lock
213
211
setSuspenseHandler ( ( ) => false ) ;
214
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
212
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
215
213
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
216
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
214
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
217
215
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
218
216
219
217
// Lock again
220
218
setSuspenseHandler ( ( ) => true ) ;
221
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
219
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
222
220
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Loading' ] ) ;
223
221
224
222
// Release the lock again
225
223
setSuspenseHandler ( ( ) => false ) ;
226
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
224
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
227
225
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
228
226
229
227
// Ensure it checks specific fibers.
230
228
setSuspenseHandler ( f => f === fiber || f === fiber . alternate ) ;
231
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
229
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
232
230
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Loading' ] ) ;
233
231
setSuspenseHandler ( f => f !== fiber && f !== fiber . alternate ) ;
234
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
232
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
235
233
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
236
234
} else {
237
235
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
@@ -267,33 +265,32 @@ describe('React hooks DevTools integration', () => {
267
265
if ( __DEV__ ) {
268
266
// First render was locked
269
267
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Loading' ] ) ;
270
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
268
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
271
269
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Loading' ] ) ;
272
270
273
271
// Release the lock
274
272
setSuspenseHandler ( ( ) => false ) ;
275
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
276
- Scheduler . unstable_flushAll ( ) ;
273
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
277
274
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
278
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
275
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
279
276
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
280
277
281
278
// Lock again
282
279
setSuspenseHandler ( ( ) => true ) ;
283
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
280
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
284
281
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Loading' ] ) ;
285
282
286
283
// Release the lock again
287
284
setSuspenseHandler ( ( ) => false ) ;
288
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
285
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
289
286
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
290
287
291
288
// Ensure it checks specific fibers.
292
289
setSuspenseHandler ( f => f === fiber || f === fiber . alternate ) ;
293
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
290
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
294
291
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Loading' ] ) ;
295
292
setSuspenseHandler ( f => f !== fiber && f !== fiber . alternate ) ;
296
- act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
293
+ await act ( ( ) => scheduleUpdate ( fiber ) ) ; // Re-render
297
294
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
298
295
} else {
299
296
expect ( renderer . toJSON ( ) . children ) . toEqual ( [ 'Done' ] ) ;
0 commit comments