





















@@ -211,6 +211,19 @@ const spawnMock = mockedSpawn as unknown as Mock;
211211const originalPath = process.env.PATH;
212212const originalPathExt = process.env.PATHEXT;
213213const originalWindowsPath = process.env.Path;
214+const originalQmdStateDir = process.env.OPENCLAW_STATE_DIR;
215+216+function setQmdStateDir(stateDir: string): void {
217+Reflect.set(process.env, "OPENCLAW_STATE_DIR", stateDir);
218+}
219+220+function restoreQmdStateDir(): void {
221+if (originalQmdStateDir === undefined) {
222+Reflect.deleteProperty(process.env, "OPENCLAW_STATE_DIR");
223+} else {
224+Reflect.set(process.env, "OPENCLAW_STATE_DIR", originalQmdStateDir);
225+}
226+}
214227215228describe("QmdMemoryManager", () => {
216229let fixtureRoot: string;
@@ -340,7 +353,7 @@ describe("QmdMemoryManager", () => {
340353// Only workspace must exist for configured collection paths; state paths are
341354// created lazily by manager code when needed.
342355await fs.mkdir(workspaceDir, { recursive: true });
343-process.env.OPENCLAW_STATE_DIR = stateDir;
356+setQmdStateDir(stateDir);
344357// Keep the default Windows path unresolved for most tests so spawn mocks can
345358// match the logical package command. Tests that verify wrapper resolution
346359// install explicit shim fixtures inline.
@@ -387,7 +400,7 @@ describe("QmdMemoryManager", () => {
387400embedStartupJitterSpy?.mockRestore();
388401embedStartupJitterSpy = null;
389402vi.useRealTimers();
390-delete process.env.OPENCLAW_STATE_DIR;
403+restoreQmdStateDir();
391404if (originalPath === undefined) {
392405delete process.env.PATH;
393406} else {
@@ -6450,7 +6463,7 @@ describe("QmdMemoryManager", () => {
64506463// directory instead of the real ~/.cache.
64516464savedXdgCacheHome = process.env.XDG_CACHE_HOME;
64526465const fakeCacheHome = path.join(tmpRoot, "fake-cache");
6453-process.env.XDG_CACHE_HOME = fakeCacheHome;
6466+Reflect.set(process.env, "XDG_CACHE_HOME", fakeCacheHome);
6454646764556468defaultModelsDir = path.join(fakeCacheHome, "qmd", "models");
64566469await fs.mkdir(defaultModelsDir, { recursive: true });
@@ -6461,9 +6474,9 @@ describe("QmdMemoryManager", () => {
6461647464626475afterEach(() => {
64636476if (savedXdgCacheHome === undefined) {
6464-delete process.env.XDG_CACHE_HOME;
6477+Reflect.deleteProperty(process.env, "XDG_CACHE_HOME");
64656478} else {
6466-process.env.XDG_CACHE_HOME = savedXdgCacheHome;
6479+Reflect.set(process.env, "XDG_CACHE_HOME", savedXdgCacheHome);
64676480}
64686481});
64696482此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。