From c61f3f4ede852886fa64f7868a3c532da23bf999 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 13 Mar 2026 19:08:43 +0000 Subject: [PATCH] refactor: share logging console spies --- src/logging/subsystem.test.ts | 59 ++++++++++------------------------- 1 file changed, 17 insertions(+), 42 deletions(-) diff --git a/src/logging/subsystem.test.ts b/src/logging/subsystem.test.ts index 06f504f47de..15c5dbb9754 100644 --- a/src/logging/subsystem.test.ts +++ b/src/logging/subsystem.test.ts @@ -4,6 +4,17 @@ import { resetLogger, setLoggerOverride } from "./logger.js"; import { loggingState } from "./state.js"; import { createSubsystemLogger } from "./subsystem.js"; +function installConsoleMethodSpy(method: "warn" | "error") { + const spy = vi.fn(); + loggingState.rawConsole = { + log: vi.fn(), + info: vi.fn(), + warn: method === "warn" ? spy : vi.fn(), + error: method === "error" ? spy : vi.fn(), + }; + return spy; +} + afterEach(() => { setConsoleSubsystemFilter(null); setLoggerOverride(null); @@ -58,13 +69,7 @@ describe("createSubsystemLogger().isEnabled", () => { it("suppresses probe warnings for embedded subsystems based on structured run metadata", () => { setLoggerOverride({ level: "silent", consoleLevel: "warn" }); - const warn = vi.fn(); - loggingState.rawConsole = { - log: vi.fn(), - info: vi.fn(), - warn, - error: vi.fn(), - }; + const warn = installConsoleMethodSpy("warn"); const log = createSubsystemLogger("agent/embedded").child("failover"); log.warn("embedded run failover decision", { @@ -77,13 +82,7 @@ describe("createSubsystemLogger().isEnabled", () => { it("does not suppress probe errors for embedded subsystems", () => { setLoggerOverride({ level: "silent", consoleLevel: "error" }); - const error = vi.fn(); - loggingState.rawConsole = { - log: vi.fn(), - info: vi.fn(), - warn: vi.fn(), - error, - }; + const error = installConsoleMethodSpy("error"); const log = createSubsystemLogger("agent/embedded").child("failover"); log.error("embedded run failover decision", { @@ -96,13 +95,7 @@ describe("createSubsystemLogger().isEnabled", () => { it("suppresses probe warnings for model-fallback child subsystems based on structured run metadata", () => { setLoggerOverride({ level: "silent", consoleLevel: "warn" }); - const warn = vi.fn(); - loggingState.rawConsole = { - log: vi.fn(), - info: vi.fn(), - warn, - error: vi.fn(), - }; + const warn = installConsoleMethodSpy("warn"); const log = createSubsystemLogger("model-fallback").child("decision"); log.warn("model fallback decision", { @@ -115,13 +108,7 @@ describe("createSubsystemLogger().isEnabled", () => { it("does not suppress probe errors for model-fallback child subsystems", () => { setLoggerOverride({ level: "silent", consoleLevel: "error" }); - const error = vi.fn(); - loggingState.rawConsole = { - log: vi.fn(), - info: vi.fn(), - warn: vi.fn(), - error, - }; + const error = installConsoleMethodSpy("error"); const log = createSubsystemLogger("model-fallback").child("decision"); log.error("model fallback decision", { @@ -134,13 +121,7 @@ describe("createSubsystemLogger().isEnabled", () => { it("still emits non-probe warnings for embedded subsystems", () => { setLoggerOverride({ level: "silent", consoleLevel: "warn" }); - const warn = vi.fn(); - loggingState.rawConsole = { - log: vi.fn(), - info: vi.fn(), - warn, - error: vi.fn(), - }; + const warn = installConsoleMethodSpy("warn"); const log = createSubsystemLogger("agent/embedded").child("auth-profiles"); log.warn("auth profile failure state updated", { @@ -153,13 +134,7 @@ describe("createSubsystemLogger().isEnabled", () => { it("still emits non-probe model-fallback child warnings", () => { setLoggerOverride({ level: "silent", consoleLevel: "warn" }); - const warn = vi.fn(); - loggingState.rawConsole = { - log: vi.fn(), - info: vi.fn(), - warn, - error: vi.fn(), - }; + const warn = installConsoleMethodSpy("warn"); const log = createSubsystemLogger("model-fallback").child("decision"); log.warn("model fallback decision", {