




















@@ -2,6 +2,7 @@
22import fs from "node:fs/promises";
33import os from "node:os";
44import path from "node:path";
5+import { deleteTestEnvValue, setTestEnvValue } from "../../test-utils/env.js";
56import { cleanupSessionStateForTest } from "../../test-utils/session-state-cleanup.js";
6778type EnvValue = string | undefined | ((home: string) => string | undefined);
@@ -36,9 +37,9 @@ function snapshotEnv(): EnvSnapshot {
3637function restoreEnv(snapshot: EnvSnapshot) {
3738const restoreKey = (key: string, value: string | undefined) => {
3839if (value === undefined) {
39-delete process.env[key];
40+deleteTestEnvValue(key);
4041} else {
41-process.env[key] = value;
42+setTestEnvValue(key, value);
4243}
4344};
4445restoreKey("HOME", snapshot.home);
@@ -60,19 +61,19 @@ function snapshotExtraEnv(keys: string[]): Record<string, string | undefined> {
6061function restoreExtraEnv(snapshot: Record<string, string | undefined>) {
6162for (const [key, value] of Object.entries(snapshot)) {
6263if (value === undefined) {
63-delete process.env[key];
64+deleteTestEnvValue(key);
6465} else {
65-process.env[key] = value;
66+setTestEnvValue(key, value);
6667}
6768}
6869}
69707071function setTempHome(base: string) {
71-process.env.HOME = base;
72-process.env.USERPROFILE = base;
72+setTestEnvValue("HOME", base);
73+setTestEnvValue("USERPROFILE", base);
7374// Ensure tests using HOME isolation aren't affected by leaked OPENCLAW_HOME.
74-delete process.env.OPENCLAW_HOME;
75-process.env.OPENCLAW_STATE_DIR = path.join(base, ".openclaw");
75+deleteTestEnvValue("OPENCLAW_HOME");
76+setTestEnvValue("OPENCLAW_STATE_DIR", path.join(base, ".openclaw"));
76777778if (process.platform !== "win32") {
7879return;
@@ -81,8 +82,8 @@ function setTempHome(base: string) {
8182if (!match) {
8283return;
8384}
84-process.env.HOMEDRIVE = match[1];
85-process.env.HOMEPATH = match[2] || "\\";
85+setTestEnvValue("HOMEDRIVE", match[1]);
86+setTestEnvValue("HOMEPATH", match[2] || "\\");
8687}
87888889async function allocateTempHomeBase(prefix: string): Promise<string> {
@@ -126,9 +127,9 @@ export async function withTempHome<T>(
126127for (const [key, raw] of Object.entries(opts.env)) {
127128const value = typeof raw === "function" ? raw(base) : raw;
128129if (value === undefined) {
129-delete process.env[key];
130+deleteTestEnvValue(key);
130131} else {
131-process.env[key] = value;
132+setTestEnvValue(key, value);
132133}
133134}
134135}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。