| import { afterEach, describe, expect, it } from "vitest"; |
| import { setConsoleSubsystemFilter } from "./console.js"; |
| import { resetLogger, setLoggerOverride } from "./logger.js"; |
| import { createSubsystemLogger } from "./subsystem.js"; |
|
|
| afterEach(() => { |
| setConsoleSubsystemFilter(null); |
| setLoggerOverride(null); |
| resetLogger(); |
| }); |
|
|
| describe("createSubsystemLogger().isEnabled", () => { |
| it("returns true for any/file when only file logging would emit", () => { |
| setLoggerOverride({ level: "debug", consoleLevel: "silent" }); |
| const log = createSubsystemLogger("agent/embedded"); |
|
|
| expect(log.isEnabled("debug")).toBe(true); |
| expect(log.isEnabled("debug", "file")).toBe(true); |
| expect(log.isEnabled("debug", "console")).toBe(false); |
| }); |
|
|
| it("returns true for any/console when only console logging would emit", () => { |
| setLoggerOverride({ level: "silent", consoleLevel: "debug" }); |
| const log = createSubsystemLogger("agent/embedded"); |
|
|
| expect(log.isEnabled("debug")).toBe(true); |
| expect(log.isEnabled("debug", "console")).toBe(true); |
| expect(log.isEnabled("debug", "file")).toBe(false); |
| }); |
|
|
| it("returns false when neither console nor file logging would emit", () => { |
| setLoggerOverride({ level: "silent", consoleLevel: "silent" }); |
| const log = createSubsystemLogger("agent/embedded"); |
|
|
| expect(log.isEnabled("debug")).toBe(false); |
| expect(log.isEnabled("debug", "console")).toBe(false); |
| expect(log.isEnabled("debug", "file")).toBe(false); |
| }); |
|
|
| it("honors console subsystem filters for console target", () => { |
| setLoggerOverride({ level: "silent", consoleLevel: "info" }); |
| setConsoleSubsystemFilter(["gateway"]); |
| const log = createSubsystemLogger("agent/embedded"); |
|
|
| expect(log.isEnabled("info", "console")).toBe(false); |
| }); |
|
|
| it("does not apply console subsystem filters to file target", () => { |
| setLoggerOverride({ level: "info", consoleLevel: "silent" }); |
| setConsoleSubsystemFilter(["gateway"]); |
| const log = createSubsystemLogger("agent/embedded"); |
|
|
| expect(log.isEnabled("info", "file")).toBe(true); |
| expect(log.isEnabled("info")).toBe(true); |
| }); |
| }); |
|
|