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"); }); });