test: wrap test cleanup in act() to prevent window is not defined error (#31558)

Signed-off-by: majiayu000 <1835304752@qq.com>
This commit is contained in:
lif 2026-01-27 11:25:14 +08:00 committed by GitHub
parent b4eef76c14
commit d13638f6e4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 3 deletions

View File

@ -1,4 +1,4 @@
import { cleanup } from '@testing-library/react'
import { act, cleanup } from '@testing-library/react'
import { mockAnimationsApi, mockResizeObserver } from 'jsdom-testing-mocks'
import '@testing-library/jest-dom/vitest'
@ -78,8 +78,13 @@ if (typeof globalThis.IntersectionObserver === 'undefined') {
if (typeof Element !== 'undefined' && !Element.prototype.scrollIntoView)
Element.prototype.scrollIntoView = function () { /* noop */ }
afterEach(() => {
cleanup()
afterEach(async () => {
// Wrap cleanup in act() to flush pending React scheduler work
// This prevents "window is not defined" errors from React 19's scheduler
// which uses setImmediate/MessageChannel that can fire after jsdom cleanup
await act(async () => {
cleanup()
})
})
// mock next/image to avoid width/height requirements for data URLs