File tree 2 files changed +20
-10
lines changed
2 files changed +20
-10
lines changed Original file line number Diff line number Diff line change @@ -41,6 +41,18 @@ test('cleanup runs effect cleanup functions', async () => {
41
41
expect ( spy ) . toHaveBeenCalledTimes ( 1 )
42
42
} )
43
43
44
+ test ( 'cleanup cleans up every root and disconnects containers' , async ( ) => {
45
+ const { container : container1 } = await render ( < div /> )
46
+ const { container : container2 } = await render ( < span /> )
47
+
48
+ await cleanup ( )
49
+
50
+ expect ( container1 ) . toBeEmptyDOMElement ( )
51
+ expect ( container1 . isConnected ) . toBe ( false )
52
+ expect ( container2 ) . toBeEmptyDOMElement ( )
53
+ expect ( container2 . isConnected ) . toBe ( false )
54
+ } )
55
+
44
56
describe ( 'fake timers and missing act warnings' , ( ) => {
45
57
beforeEach ( ( ) => {
46
58
jest . resetAllMocks ( )
Original file line number Diff line number Diff line change @@ -239,16 +239,14 @@ async function render(
239
239
}
240
240
241
241
async function cleanup ( ) {
242
- await Promise . all (
243
- mountedRootEntries . map ( async ( { root, container} ) => {
244
- await act ( ( ) => {
245
- root . unmount ( )
246
- } )
247
- if ( container . parentNode === document . body ) {
248
- document . body . removeChild ( container )
249
- }
250
- } ) ,
251
- )
242
+ for ( const { container, root} of mountedRootEntries ) {
243
+ // eslint-disable-next-line no-await-in-loop -- Overlapping act calls are not allowed.
244
+ await root . unmount ( )
245
+ if ( container . parentNode === document . body ) {
246
+ document . body . removeChild ( container )
247
+ }
248
+ }
249
+
252
250
mountedRootEntries . length = 0
253
251
mountedContainers . clear ( )
254
252
}
You can’t perform that action at this time.
0 commit comments