From e88a8b5259d0631f47ed0c8949d31c23fc762fec Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 7 Oct 2025 20:27:45 +0900 Subject: [PATCH] test: add timeout to `untilBrowserLog` --- playground/hmr-ssr/__tests__/hmr-ssr.spec.ts | 16 ++++++++++++++++ playground/test-utils.ts | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/playground/hmr-ssr/__tests__/hmr-ssr.spec.ts b/playground/hmr-ssr/__tests__/hmr-ssr.spec.ts index 0504364d3d2fb0..d763bb609beae2 100644 --- a/playground/hmr-ssr/__tests__/hmr-ssr.spec.ts +++ b/playground/hmr-ssr/__tests__/hmr-ssr.spec.ts @@ -974,6 +974,7 @@ async function untilConsoleLog( expectOrder = true, ): Promise { const { promise, resolve, reject } = promiseWithResolvers() + let timeoutId: ReturnType const logsMessages = [] @@ -1024,12 +1025,27 @@ async function untilConsoleLog( } } + timeoutId = setTimeout(() => { + const nextTarget = Array.isArray(target) + ? expectOrder + ? target[0] + : target.join(', ') + : target + reject( + new Error( + `Timeout waiting for console logs. Waiting for: ${nextTarget}`, + ), + ) + logsEmitter.off('log', handleMsg) + }, 5000) + logsEmitter.on('log', handleMsg) } catch (err) { reject(err) } await promise + clearTimeout(timeoutId) return logsMessages } diff --git a/playground/test-utils.ts b/playground/test-utils.ts index 1eea352ef2d5f0..97e4c57455f7b2 100644 --- a/playground/test-utils.ts +++ b/playground/test-utils.ts @@ -274,6 +274,7 @@ async function untilBrowserLog( expectOrder = true, ): Promise { const { promise, resolve, reject } = promiseWithResolvers() + let timeoutId: ReturnType const logs = [] @@ -322,12 +323,27 @@ async function untilBrowserLog( } } + timeoutId = setTimeout(() => { + const nextTarget = Array.isArray(target) + ? expectOrder + ? target[0] + : target.join(', ') + : target + reject( + new Error( + `Timeout waiting for browser logs. Waiting for: ${nextTarget}`, + ), + ) + page.off('console', handleMsg) + }, 5000) + page.on('console', handleMsg) } catch (err) { reject(err) } await promise + clearTimeout(timeoutId) return logs }