diff --git a/src/agents/agent-paths.e2e.test.ts b/src/agents/agent-paths.e2e.test.ts index f0df2cbbdbc..b2291569756 100644 --- a/src/agents/agent-paths.e2e.test.ts +++ b/src/agents/agent-paths.e2e.test.ts @@ -2,11 +2,10 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; import { afterEach, describe, expect, it } from "vitest"; -import { captureEnv } from "../test-utils/env.js"; +import { withEnv } from "../test-utils/env.js"; import { resolveOpenClawAgentDir } from "./agent-paths.js"; describe("resolveOpenClawAgentDir", () => { - const env = captureEnv(["OPENCLAW_STATE_DIR", "OPENCLAW_AGENT_DIR", "PI_CODING_AGENT_DIR"]); let tempStateDir: string | null = null; afterEach(async () => { @@ -14,28 +13,44 @@ describe("resolveOpenClawAgentDir", () => { await fs.rm(tempStateDir, { recursive: true, force: true }); tempStateDir = null; } - env.restore(); }); it("defaults to the multi-agent path when no overrides are set", async () => { tempStateDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-agent-")); - process.env.OPENCLAW_STATE_DIR = tempStateDir; - delete process.env.OPENCLAW_AGENT_DIR; - delete process.env.PI_CODING_AGENT_DIR; - - const resolved = resolveOpenClawAgentDir(); - - expect(resolved).toBe(path.join(tempStateDir, "agents", "main", "agent")); + const stateDir = tempStateDir; + if (!stateDir) { + throw new Error("expected temp state dir"); + } + withEnv( + { + OPENCLAW_STATE_DIR: stateDir, + OPENCLAW_AGENT_DIR: undefined, + PI_CODING_AGENT_DIR: undefined, + }, + () => { + const resolved = resolveOpenClawAgentDir(); + expect(resolved).toBe(path.join(stateDir, "agents", "main", "agent")); + }, + ); }); it("honors OPENCLAW_AGENT_DIR overrides", async () => { tempStateDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-agent-")); - const override = path.join(tempStateDir, "agent"); - process.env.OPENCLAW_AGENT_DIR = override; - delete process.env.PI_CODING_AGENT_DIR; - - const resolved = resolveOpenClawAgentDir(); - - expect(resolved).toBe(path.resolve(override)); + const stateDir = tempStateDir; + if (!stateDir) { + throw new Error("expected temp state dir"); + } + const override = path.join(stateDir, "agent"); + withEnv( + { + OPENCLAW_STATE_DIR: undefined, + OPENCLAW_AGENT_DIR: override, + PI_CODING_AGENT_DIR: undefined, + }, + () => { + const resolved = resolveOpenClawAgentDir(); + expect(resolved).toBe(path.resolve(override)); + }, + ); }); });