From 4c61040c52d1c92107c75bb59464edfec754d48e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 28 Apr 2026 09:44:40 +0100 Subject: [PATCH] test: speed up small unit fast cases --- src/terminal/stream-writer.test.ts | 35 +++++++++++++++++++------- test/vitest-unit-fast-config.test.ts | 1 + test/vitest/vitest.unit-fast-paths.mjs | 1 + 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/terminal/stream-writer.test.ts b/src/terminal/stream-writer.test.ts index 5355ac59f92..ab2744e8078 100644 --- a/src/terminal/stream-writer.test.ts +++ b/src/terminal/stream-writer.test.ts @@ -1,12 +1,27 @@ -import { describe, expect, it, vi } from "vitest"; +import { describe, expect, it } from "vitest"; import { createSafeStreamWriter } from "./stream-writer.js"; +function createSpy( + implementation?: (...args: Args) => ReturnValue, +) { + const calls: Args[] = []; + const spy = (...args: Args) => { + calls.push(args); + return implementation?.(...args) as ReturnValue; + }; + spy.calls = calls; + spy.clear = () => { + calls.length = 0; + }; + return spy; +} + describe("createSafeStreamWriter", () => { it("signals broken pipes and closes the writer", () => { - const onBrokenPipe = vi.fn(); + const onBrokenPipe = createSpy<[], void>(); const writer = createSafeStreamWriter({ onBrokenPipe }); const stream = { - write: vi.fn(() => { + write: createSpy<[string], boolean>(() => { const err = new Error("EPIPE") as NodeJS.ErrnoException; err.code = "EPIPE"; throw err; @@ -15,15 +30,15 @@ describe("createSafeStreamWriter", () => { expect(writer.writeLine(stream, "hello")).toBe(false); expect(writer.isClosed()).toBe(true); - expect(onBrokenPipe).toHaveBeenCalledTimes(1); + expect(onBrokenPipe.calls).toHaveLength(1); - onBrokenPipe.mockClear(); + onBrokenPipe.clear(); expect(writer.writeLine(stream, "again")).toBe(false); - expect(onBrokenPipe).toHaveBeenCalledTimes(0); + expect(onBrokenPipe.calls).toHaveLength(0); }); it("treats broken pipes from beforeWrite as closed", () => { - const onBrokenPipe = vi.fn(); + const onBrokenPipe = createSpy<[], void>(); const writer = createSafeStreamWriter({ onBrokenPipe, beforeWrite: () => { @@ -32,10 +47,12 @@ describe("createSafeStreamWriter", () => { throw err; }, }); - const stream = { write: vi.fn(() => true) } as unknown as NodeJS.WriteStream; + const stream = { + write: createSpy<[string], boolean>(() => true), + } as unknown as NodeJS.WriteStream; expect(writer.write(stream, "hi")).toBe(false); expect(writer.isClosed()).toBe(true); - expect(onBrokenPipe).toHaveBeenCalledTimes(1); + expect(onBrokenPipe.calls).toHaveLength(1); }); }); diff --git a/test/vitest-unit-fast-config.test.ts b/test/vitest-unit-fast-config.test.ts index 69cad83fcfa..7e1bad77835 100644 --- a/test/vitest-unit-fast-config.test.ts +++ b/test/vitest-unit-fast-config.test.ts @@ -54,6 +54,7 @@ describe("unit-fast vitest lane", () => { expect(config.test?.include).toContain("src/video-generation/provider-registry.test.ts"); expect(config.test?.include).toContain("src/plugin-sdk/provider-entry.test.ts"); expect(config.test?.include).toContain("src/security/dangerous-config-flags.test.ts"); + expect(config.test?.include).toContain("src/security/context-visibility.test.ts"); expect(config.test?.include).toContain("src/security/safe-regex.test.ts"); }); diff --git a/test/vitest/vitest.unit-fast-paths.mjs b/test/vitest/vitest.unit-fast-paths.mjs index 21c85550bce..6ea1f19fc2e 100644 --- a/test/vitest/vitest.unit-fast-paths.mjs +++ b/test/vitest/vitest.unit-fast-paths.mjs @@ -160,6 +160,7 @@ export const forcedUnitFastTestFiles = [ "src/security/scan-paths.test.ts", "src/security/skill-scanner.test.ts", "src/security/audit-config-include-perms.test.ts", + "src/security/context-visibility.test.ts", "src/realtime-transcription/websocket-session.test.ts", "src/realtime-voice/agent-consult-tool.test.ts", "src/routing/resolve-route.test.ts",