Files
moltbot/src/logging/levels.test.ts
zhumengzhu f6bf8c7202 fix(logging): correct levelToMinLevel mapping and related filter logic for tslog v4 (#44646)
* fix: correct levelToMinLevel mapping and isFileLogLevelEnabled direction for tslog v4

* test: add regression tests for logging level filter and child logger inheritance

* fix: propagate minLevel to toPinoLikeLogger sub-loggers

* fix: correct shouldLogToConsole comparison direction in subsystem.ts

* test: cover logging threshold regressions

* fix(logging): treat silent as non-emittable level

---------

Co-authored-by: Altay <altay@uinaf.dev>
2026-04-08 00:19:20 +01:00

29 lines
1.1 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { levelToMinLevel } from "./levels.js";
describe("levelToMinLevel", () => {
it("returns tslog v4 logLevelId values in ascending order", () => {
expect(levelToMinLevel("trace")).toBe(1);
expect(levelToMinLevel("debug")).toBe(2);
expect(levelToMinLevel("info")).toBe(3);
expect(levelToMinLevel("warn")).toBe(4);
expect(levelToMinLevel("error")).toBe(5);
expect(levelToMinLevel("fatal")).toBe(6);
});
it("maps silent to Infinity to suppress all logs", () => {
expect(levelToMinLevel("silent")).toBe(Number.POSITIVE_INFINITY);
});
it("fatal has a higher value than trace (not inverted)", () => {
expect(levelToMinLevel("fatal")).toBeGreaterThan(levelToMinLevel("trace"));
});
it("each level is strictly more restrictive than the one below it", () => {
const ordered = ["trace", "debug", "info", "warn", "error", "fatal"] as const;
for (let i = 1; i < ordered.length; i++) {
expect(levelToMinLevel(ordered[i])).toBeGreaterThan(levelToMinLevel(ordered[i - 1]));
}
});
});