From 4484772e7d0e0e888010001f148222e62eba6905 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 25 Apr 2026 12:04:02 +0100 Subject: [PATCH] test(logger): isolate rolling file cleanup --- src/logger.test.ts | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/logger.test.ts b/src/logger.test.ts index 64b9a5f1457..8e6080163d9 100644 --- a/src/logger.test.ts +++ b/src/logger.test.ts @@ -4,7 +4,6 @@ import { afterEach, describe, expect, it, vi } from "vitest"; import { isVerbose, isYes, logVerbose, setVerbose, setYes } from "./globals.js"; import { logDebug, logError, logInfo, logSuccess, logWarn } from "./logger.js"; import { - DEFAULT_LOG_DIR, resetLogger, setLoggerOverride, stripRedundantSubsystemPrefixForConsole, @@ -35,7 +34,7 @@ describe("logger helpers", () => { }); it("only logs debug when verbose is enabled", () => { - const logVerbose = vi.spyOn(console, "log"); + const logVerbose = vi.spyOn(console, "log").mockImplementation(() => {}); setVerbose(false); logDebug("quiet"); expect(logVerbose).not.toHaveBeenCalled(); @@ -70,26 +69,24 @@ describe("logger helpers", () => { }); }); - it("uses daily rolling default log file and prunes old ones", () => { - resetLogger(); - setLoggerOverride({ level: "info" }); // force default file path with enabled file logging - const today = localDateString(new Date()); - const todayPath = path.join(DEFAULT_LOG_DIR, `openclaw-${today}.log`); + it("uses daily rolling log files and prunes old ones", () => { + withTempDirSync({ prefix: "openclaw-log-test-" }, (dir) => { + resetLogger(); + const today = localDateString(new Date()); + const todayPath = path.join(dir, `openclaw-${today}.log`); + setLoggerOverride({ level: "info", file: todayPath }); - // create an old file to be pruned - const oldPath = path.join(DEFAULT_LOG_DIR, "openclaw-2000-01-01.log"); - fs.mkdirSync(DEFAULT_LOG_DIR, { recursive: true }); - fs.writeFileSync(oldPath, "old"); - fs.utimesSync(oldPath, new Date(0), new Date(0)); - fs.rmSync(todayPath, { force: true }); + // create an old file to be pruned + const oldPath = path.join(dir, "openclaw-2000-01-01.log"); + fs.writeFileSync(oldPath, "old"); + fs.utimesSync(oldPath, new Date(0), new Date(0)); - logInfo("roll-me"); + logInfo("roll-me"); - expect(fs.existsSync(todayPath)).toBe(true); - expect(fs.readFileSync(todayPath, "utf-8")).toContain("roll-me"); - expect(fs.existsSync(oldPath)).toBe(false); - - fs.rmSync(todayPath, { force: true }); + expect(fs.existsSync(todayPath)).toBe(true); + expect(fs.readFileSync(todayPath, "utf-8")).toContain("roll-me"); + expect(fs.existsSync(oldPath)).toBe(false); + }); }); });