|
1 | 1 | // Home environment test support isolates HOME-style paths for skill tests. |
2 | 2 | import os from "node:os"; |
3 | 3 | import { vi } from "vitest"; |
| 4 | +import { deleteTestEnvValue, setTestEnvValue } from "../../test-utils/env.js"; |
4 | 5 | |
5 | 6 | /** Process home env snapshot used by skill loader tests. */ |
6 | 7 | export type SkillsHomeEnvSnapshot = { |
@@ -15,32 +16,28 @@ export function setMockSkillsHomeEnv(fakeHome: string): SkillsHomeEnvSnapshot {
|
15 | 16 | previousOpenClawHome: process.env.OPENCLAW_HOME, |
16 | 17 | previousUserProfile: process.env.USERPROFILE, |
17 | 18 | }; |
18 | | -process.env.HOME = fakeHome; |
19 | | -delete process.env.OPENCLAW_HOME; |
20 | | -delete process.env.USERPROFILE; |
| 19 | +setTestEnvValue("HOME", fakeHome); |
| 20 | +deleteTestEnvValue("OPENCLAW_HOME"); |
| 21 | +deleteTestEnvValue("USERPROFILE"); |
21 | 22 | vi.spyOn(os, "homedir").mockReturnValue(fakeHome); |
22 | 23 | return snapshot; |
23 | 24 | } |
24 | 25 | |
| 26 | +function restoreEnvValue(key: string, value: string | undefined): void { |
| 27 | +if (value === undefined) { |
| 28 | +deleteTestEnvValue(key); |
| 29 | +} else { |
| 30 | +setTestEnvValue(key, value); |
| 31 | +} |
| 32 | +} |
| 33 | + |
25 | 34 | export async function restoreMockSkillsHomeEnv( |
26 | 35 | snapshot: SkillsHomeEnvSnapshot, |
27 | 36 | cleanup?: () => Promise<void> | void, |
28 | 37 | ) { |
29 | 38 | vi.restoreAllMocks(); |
30 | | -if (snapshot.previousHome === undefined) { |
31 | | -delete process.env.HOME; |
32 | | -} else { |
33 | | -process.env.HOME = snapshot.previousHome; |
34 | | -} |
35 | | -if (snapshot.previousOpenClawHome === undefined) { |
36 | | -delete process.env.OPENCLAW_HOME; |
37 | | -} else { |
38 | | -process.env.OPENCLAW_HOME = snapshot.previousOpenClawHome; |
39 | | -} |
40 | | -if (snapshot.previousUserProfile === undefined) { |
41 | | -delete process.env.USERPROFILE; |
42 | | -} else { |
43 | | -process.env.USERPROFILE = snapshot.previousUserProfile; |
44 | | -} |
| 39 | +restoreEnvValue("HOME", snapshot.previousHome); |
| 40 | +restoreEnvValue("OPENCLAW_HOME", snapshot.previousOpenClawHome); |
| 41 | +restoreEnvValue("USERPROFILE", snapshot.previousUserProfile); |
45 | 42 | await cleanup?.(); |
46 | 43 | } |