11// Home environment test support isolates HOME-style paths for skill tests.
22import os from "node:os" ;
33import { vi } from "vitest" ;
4+ import { deleteTestEnvValue , setTestEnvValue } from "../../test-utils/env.js" ;
45
56/** Process home env snapshot used by skill loader tests. */
67export type SkillsHomeEnvSnapshot = {
@@ -15,32 +16,28 @@ export function setMockSkillsHomeEnv(fakeHome: string): SkillsHomeEnvSnapshot {
1516 previousOpenClawHome : process . env . OPENCLAW_HOME ,
1617 previousUserProfile : process . env . USERPROFILE ,
1718 } ;
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" ) ;
2122 vi . spyOn ( os , "homedir" ) . mockReturnValue ( fakeHome ) ;
2223 return snapshot ;
2324}
2425
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+
2534export async function restoreMockSkillsHomeEnv (
2635 snapshot : SkillsHomeEnvSnapshot ,
2736 cleanup ?: ( ) => Promise < void > | void ,
2837) {
2938 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 ) ;
4542 await cleanup ?.( ) ;
4643}
0 commit comments