From d13638f6e49ce9a62a745971eb52ab41444dcfb9 Mon Sep 17 00:00:00 2001 From: lif <1835304752@qq.com> Date: Tue, 27 Jan 2026 11:25:14 +0800 Subject: [PATCH] test: wrap test cleanup in act() to prevent window is not defined error (#31558) Signed-off-by: majiayu000 <1835304752@qq.com> --- web/vitest.setup.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/web/vitest.setup.ts b/web/vitest.setup.ts index 597ded9559..ff28ea1da5 100644 --- a/web/vitest.setup.ts +++ b/web/vitest.setup.ts @@ -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