disclaw/tests/unit/logger.test.ts
Nick Tabeling 1cafaabe2a
Some checks failed
CI / build-and-test (ubuntu-latest) (pull_request) Has been cancelled
CI / build-and-test (windows-latest) (pull_request) Has been cancelled
CI / lint (pull_request) Has been cancelled
feat(DIS-101): introduce pino structured logger, remove console.*
Replace all console.* calls in src/ with pino child-loggers.
Add rootLogger + childLogger(component) in src/runtime/logger.ts.
pino-pretty used as dev transport only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 17:09:37 +02:00

31 lines
1.1 KiB
TypeScript

import { describe, it, expect } from "vitest";
import { childLogger, rootLogger } from "../../src/runtime/logger";
import pino from "pino";
describe("childLogger", () => {
it("returns a pino logger instance", () => {
const logger = childLogger("runner");
expect(logger).toBeDefined();
expect(typeof logger.info).toBe("function");
expect(typeof logger.error).toBe("function");
});
it("sets component binding on child logger", () => {
const logger = childLogger("runner");
// pino child loggers expose their bindings via .bindings()
const bindings = (logger as pino.Logger).bindings();
expect(bindings.component).toBe("runner");
});
it("rootLogger is a pino logger", () => {
expect(typeof rootLogger.info).toBe("function");
expect(typeof rootLogger.child).toBe("function");
});
it("different component names produce distinct bindings", () => {
const runnerLog = childLogger("runner");
const botLog = childLogger("bot");
expect(runnerLog.bindings().component).toBe("runner");
expect(botLog.bindings().component).toBe("bot");
});
});