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>
31 lines
1.1 KiB
TypeScript
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");
|
|
});
|
|
});
|