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