Spaces:
Running
Running
| import { afterEach, expect, mock, test } from "bun:test" | |
| import { debugJson, debugJsonTail } from "../src/lib/logger" | |
| import { state } from "../src/lib/state" | |
| afterEach(() => { | |
| state.verbose = false | |
| }) | |
| test("debugJson skips serialization when verbose logging is disabled", () => { | |
| state.verbose = false | |
| const logger = { | |
| debug: mock(() => {}), | |
| } | |
| const toJSON = mock(() => ({ ok: true })) | |
| debugJson(logger as never, "payload", { toJSON }) | |
| expect(toJSON).not.toHaveBeenCalled() | |
| expect(logger.debug).not.toHaveBeenCalled() | |
| }) | |
| test("debugJson logs the serialized payload when verbose logging is enabled", () => { | |
| state.verbose = true | |
| const logger = { | |
| debug: mock(() => {}), | |
| } | |
| const payload = { ok: true } | |
| debugJson(logger as never, "payload", payload) | |
| expect(logger.debug).toHaveBeenCalledWith("payload", JSON.stringify(payload)) | |
| }) | |
| test("debugJsonTail preserves tail truncation behavior", () => { | |
| state.verbose = true | |
| const logger = { | |
| debug: mock(() => {}), | |
| } | |
| const payload = { text: "abcdefghijklmnopqrstuvwxyz" } | |
| const expected = JSON.stringify(payload).slice(-10) | |
| debugJsonTail(logger as never, "payload", { value: payload, tailLength: 10 }) | |
| expect(logger.debug).toHaveBeenCalledWith("payload", expected) | |
| }) | |