diff --git a/packages/cli/src/test-utils/render.test.tsx b/packages/cli/src/test-utils/render.test.tsx index 28ac50b595..1940112171 100644 --- a/packages/cli/src/test-utils/render.test.tsx +++ b/packages/cli/src/test-utils/render.test.tsx @@ -4,21 +4,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; +import { describe, it, expect, vi } from 'vitest'; import { useState, useEffect, act } from 'react'; import { Text } from 'ink'; import { renderHook, render } from './render.js'; import { waitFor } from './async.js'; describe.sequential('render', () => { - beforeEach(() => { - vi.useFakeTimers(); - }); - - afterEach(() => { - vi.useRealTimers(); - }); - it('should render a component', async () => { const { lastFrame, unmount } = await render(Hello World); expect(lastFrame()).toBe('Hello World\n'); diff --git a/packages/cli/src/test-utils/render.tsx b/packages/cli/src/test-utils/render.tsx index b7c2d03349..db0d82750c 100644 --- a/packages/cli/src/test-utils/render.tsx +++ b/packages/cli/src/test-utils/render.tsx @@ -10,6 +10,7 @@ import { type RenderOptions, } from 'ink'; import { EventEmitter } from 'node:events'; +import { Writable } from 'node:stream'; import { Box } from 'ink'; import { Terminal } from '@xterm/headless'; import { vi } from 'vitest'; @@ -298,9 +299,6 @@ class XtermStdout extends EventEmitter { if (vi.isFakeTimers()) { await vi.advanceTimersByTimeAsync(100); } else { - await act(async () => { - await new Promise((resolve) => process.nextTick(resolve)); - }); await new Promise((resolve) => setTimeout(resolve, 100)); } } @@ -430,9 +428,14 @@ export const render = async ( let instance!: InkInstance; stdout.clear(); + const dummyStdout = new Writable({ + write(_chunk, _encoding, callback) { + callback(); + }, + }); act(() => { instance = inkRenderDirect(tree, { - stdout: stdout as unknown as NodeJS.WriteStream, + stdout: dummyStdout as unknown as NodeJS.WriteStream, stderr: stderr as unknown as NodeJS.WriteStream,