





















@@ -7,6 +7,7 @@ import type { SessionEntry } from "../../config/sessions.js";
77import { clearSessionStoreCacheForTest } from "../../config/sessions/store.js";
88import { appendSessionTranscriptMessage } from "../../config/sessions/transcript-append.js";
99import type { OpenClawConfig } from "../../config/types.openclaw.js";
10+import { captureEnv, setTestEnvValue } from "../../test-utils/env.js";
1011import { saveAuthProfileStore } from "../auth-profiles/store.js";
1112import type { EmbeddedAgentRunResult } from "../embedded-agent.js";
1213import { FailoverError } from "../failover-error.js";
@@ -50,8 +51,6 @@ const providerAuthAliasMocks = vi.hoisted(() => ({
5051},
5152),
5253}));
53-const ORIGINAL_HOME = process.env.HOME;
54-5554vi.mock("../cli-runner.js", () => ({
5655runCliAgent: runCliAgentMock,
5756}));
@@ -210,8 +209,10 @@ function firstEmbeddedAgentArg(callIndex = 0) {
210209describe("CLI attempt execution", () => {
211210let tmpDir: string;
212211let storePath: string;
212+let homeEnvSnapshot: ReturnType<typeof captureEnv> | undefined;
213213214214beforeEach(async () => {
215+homeEnvSnapshot = captureEnv(["HOME"]);
215216tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-attempt-"));
216217storePath = path.join(tmpDir, "sessions.json");
217218runCliAgentMock.mockReset();
@@ -222,11 +223,8 @@ describe("CLI attempt execution", () => {
222223223224afterEach(async () => {
224225vi.useRealTimers();
225-if (ORIGINAL_HOME === undefined) {
226-delete process.env.HOME;
227-} else {
228-process.env.HOME = ORIGINAL_HOME;
229-}
226+homeEnvSnapshot?.restore();
227+homeEnvSnapshot = undefined;
230228await fs.rm(tmpDir, { recursive: true, force: true });
231229});
232230@@ -278,7 +276,7 @@ describe("CLI attempt execution", () => {
278276workspaceDir: tmpDir,
279277 homeDir,
280278});
281-process.env.HOME = homeDir;
279+setTestEnvValue("HOME", homeDir);
282280await fs.mkdir(projectsDir, { recursive: true });
283281await fs.writeFile(
284282path.join(projectsDir, `${cliSessionId}.jsonl`),
@@ -315,7 +313,7 @@ describe("CLI attempt execution", () => {
315313workspaceDir: tmpDir,
316314 homeDir,
317315});
318-process.env.HOME = homeDir;
316+setTestEnvValue("HOME", homeDir);
319317await fs.mkdir(projectsDir, { recursive: true });
320318await fs.writeFile(
321319path.join(projectsDir, "stale-cli-session.jsonl"),
@@ -555,7 +553,7 @@ describe("CLI attempt execution", () => {
555553it("does not pass --resume when the stored Claude CLI transcript is missing", async () => {
556554const sessionKey = "agent:main:direct:claude-missing-transcript";
557555const homeDir = path.join(tmpDir, "home");
558-process.env.HOME = homeDir;
556+setTestEnvValue("HOME", homeDir);
559557const sessionEntry: SessionEntry = {
560558sessionId: "openclaw-session-123",
561559updatedAt: Date.now(),
@@ -604,7 +602,7 @@ describe("CLI attempt execution", () => {
604602workspaceDir: tmpDir,
605603 homeDir,
606604});
607-process.env.HOME = homeDir;
605+setTestEnvValue("HOME", homeDir);
608606await fs.mkdir(projectsDir, { recursive: true });
609607await fs.writeFile(
610608path.join(projectsDir, `${cliSessionId}.jsonl`),
@@ -660,7 +658,7 @@ describe("CLI attempt execution", () => {
660658workspaceDir: cwd,
661659 homeDir,
662660});
663-process.env.HOME = homeDir;
661+setTestEnvValue("HOME", homeDir);
664662await fs.mkdir(projectsDir, { recursive: true });
665663await fs.writeFile(
666664path.join(projectsDir, `${cliSessionId}.jsonl`),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。