diff --git a/src/hooks/fire-and-forget.test.ts b/src/hooks/fire-and-forget.test.ts index 2545b2b302e..70656da2aef 100644 --- a/src/hooks/fire-and-forget.test.ts +++ b/src/hooks/fire-and-forget.test.ts @@ -1,6 +1,15 @@ import { describe, expect, it, vi } from "vitest"; import { fireAndForgetBoundedHook, fireAndForgetHook } from "./fire-and-forget.js"; +function requireFirstLog(logger: ReturnType): string { + const message = logger.mock.calls[0]?.[0]; + expect(message).toBeDefined(); + if (typeof message !== "string") { + throw new Error("expected string log message"); + } + return message; +} + describe("fireAndForgetHook", () => { it("logs rejection errors as sanitized single-line messages", async () => { const logger = vi.fn(); @@ -11,8 +20,9 @@ describe("fireAndForgetHook", () => { ); await Promise.resolve(); expect(logger).toHaveBeenCalledWith(expect.stringMatching(/^hook failed: boom forged secret/)); - expect(logger.mock.calls[0]?.[0]).not.toContain("\n"); - expect(logger.mock.calls[0]?.[0]).not.toContain("sk-test1234567890"); + const message = requireFirstLog(logger); + expect(message).not.toContain("\n"); + expect(message).not.toContain("sk-test1234567890"); }); it("does not log for resolved tasks", async () => {