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 @@ -214,16 +214,14 @@ async function render(
214
214
}
215
215
216
216
async function cleanup ( ) {
217
- await Promise . all (
218
- mountedRootEntries . map ( async ( { root, container} ) => {
219
- await act ( ( ) => {
220
- root . unmount ( )
221
- } )
222
- if ( container . parentNode === document . body ) {
223
- document . body . removeChild ( container )
224
- }
225
- } ) ,
226
- )
217
+ for ( const { container, root} of mountedRootEntries ) {
218
+ // eslint-disable-next-line no-await-in-loop -- Overlapping act calls are not allowed.
219
+ await root . unmount ( )
220
+ if ( container . parentNode === document . body ) {
221
+ document . body . removeChild ( container )
222
+ }
223
+ }
224
+
227
225
mountedRootEntries . length = 0
228
226
mountedContainers . clear ( )
229
227
}
You can’t perform that action at this time.
0 commit comments