openclaw/src/test-utils/temp-home.test.ts

28 lines
1.1 KiB
TypeScript

import fs from "node:fs/promises";
import path from "node:path";
import { describe, expect, it } from "vitest";
import { createTempHomeEnv } from "./temp-home.js";
describe("createTempHomeEnv", () => {
it("sets home env vars and restores them on cleanup", async () => {
const previousHome = process.env.HOME;
const previousUserProfile = process.env.USERPROFILE;
const previousStateDir = process.env.OPENCLAW_STATE_DIR;
const tempHome = await createTempHomeEnv("openclaw-temp-home-");
expect(process.env.HOME).toBe(tempHome.home);
expect(process.env.USERPROFILE).toBe(tempHome.home);
expect(process.env.OPENCLAW_STATE_DIR).toBe(path.join(tempHome.home, ".openclaw"));
await expect(fs.stat(tempHome.home)).resolves.toMatchObject({
isDirectory: expect.any(Function),
});
await tempHome.restore();
expect(process.env.HOME).toBe(previousHome);
expect(process.env.USERPROFILE).toBe(previousUserProfile);
expect(process.env.OPENCLAW_STATE_DIR).toBe(previousStateDir);
await expect(fs.stat(tempHome.home)).rejects.toThrow();
});
});