From 8780cbbb12eafd598b7a76b80b9dda406960ef46 Mon Sep 17 00:00:00 2001 From: mkorwel Date: Thu, 16 Apr 2026 20:55:22 +0000 Subject: [PATCH] test(cli): fix hangs in renderHook by skipping wait for empty frames --- packages/cli/src/test-utils/render.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/test-utils/render.tsx b/packages/cli/src/test-utils/render.tsx index 6e1faca266..4280fdf4cf 100644 --- a/packages/cli/src/test-utils/render.tsx +++ b/packages/cli/src/test-utils/render.tsx @@ -404,6 +404,7 @@ export const render = async ( tree: React.ReactElement, terminalWidth?: number, terminalHeight?: number, + allowEmptyFrame = false, ): Promise< Omit > => { @@ -459,11 +460,13 @@ export const render = async ( instances.push(instance); - while (stdout.renderCount === 0 || stdout.lastFrame({ allowEmpty: true }) === '') { - if (vi.isFakeTimers()) { - await vi.advanceTimersByTimeAsync(10); - } else { - await new Promise((resolve) => setTimeout(resolve, 10)); + if (!allowEmptyFrame) { + while (stdout.renderCount === 0 || stdout.lastFrame({ allowEmpty: true }) === '') { + if (vi.isFakeTimers()) { + await vi.advanceTimersByTimeAsync(10); + } else { + await new Promise((resolve) => setTimeout(resolve, 10)); + } } } @@ -886,6 +889,9 @@ export async function renderHook( , + undefined, + undefined, + true, ); inkRerender = renderResult.rerender; unmount = renderResult.unmount;