diff --git a/src/discord/monitor/exec-approvals.test.ts b/src/discord/monitor/exec-approvals.test.ts index 5992b42200c..fdeb2b694ae 100644 --- a/src/discord/monitor/exec-approvals.test.ts +++ b/src/discord/monitor/exec-approvals.test.ts @@ -5,6 +5,7 @@ import os from "node:os"; import path from "node:path"; import { beforeEach, describe, expect, it, vi } from "vitest"; import type { DiscordExecApprovalConfig } from "../../config/types.discord.js"; +import { clearSessionStoreCacheForTest } from "../../config/sessions.js"; import { buildExecApprovalCustomId, extractDiscordChannelId, @@ -19,6 +20,8 @@ const STORE_PATH = path.join(os.tmpdir(), "openclaw-exec-approvals-test.json"); const writeStore = (store: Record) => { fs.writeFileSync(STORE_PATH, `${JSON.stringify(store, null, 2)}\n`, "utf8"); + // CI runners can have coarse mtime resolution; avoid returning stale cached stores. + clearSessionStoreCacheForTest(); }; beforeEach(() => { diff --git a/src/web/media.test.ts b/src/web/media.test.ts index 17e4f76ca88..c76fb55d814 100644 --- a/src/web/media.test.ts +++ b/src/web/media.test.ts @@ -101,7 +101,12 @@ describe("web media loading", () => { // Ensure state dir is stable and not influenced by other tests that stub OPENCLAW_STATE_DIR. // Also keep it outside os.tmpdir() so tmpdir localRoots doesn't accidentally make all state readable. previousStateDir = process.env.OPENCLAW_STATE_DIR; - process.env.OPENCLAW_STATE_DIR = path.join(os.homedir(), ".openclaw-media-state-test"); + process.env.OPENCLAW_STATE_DIR = path.join( + path.parse(os.tmpdir()).root, + "var", + "lib", + "openclaw-media-state-test", + ); }); afterAll(() => {