Spaces:
Paused
Paused
| import fs from "node:fs/promises"; | |
| import os from "node:os"; | |
| import path from "node:path"; | |
| import { afterEach, describe, expect, it } from "vitest"; | |
| import { resolveOpenClawAgentDir } from "./agent-paths.js"; | |
| describe("resolveOpenClawAgentDir", () => { | |
| const previousStateDir = process.env.OPENCLAW_STATE_DIR; | |
| const previousAgentDir = process.env.OPENCLAW_AGENT_DIR; | |
| const previousPiAgentDir = process.env.PI_CODING_AGENT_DIR; | |
| let tempStateDir: string | null = null; | |
| afterEach(async () => { | |
| if (tempStateDir) { | |
| await fs.rm(tempStateDir, { recursive: true, force: true }); | |
| tempStateDir = null; | |
| } | |
| if (previousStateDir === undefined) { | |
| delete process.env.OPENCLAW_STATE_DIR; | |
| } else { | |
| process.env.OPENCLAW_STATE_DIR = previousStateDir; | |
| } | |
| if (previousAgentDir === undefined) { | |
| delete process.env.OPENCLAW_AGENT_DIR; | |
| } else { | |
| process.env.OPENCLAW_AGENT_DIR = previousAgentDir; | |
| } | |
| if (previousPiAgentDir === undefined) { | |
| delete process.env.PI_CODING_AGENT_DIR; | |
| } else { | |
| process.env.PI_CODING_AGENT_DIR = previousPiAgentDir; | |
| } | |
| }); | |
| 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")); | |
| }); | |
| 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)); | |
| }); | |
| }); | |