mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-23 19:08:22 -06:00
test: isolate exec approval env
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { captureEnv, deleteTestEnvValue, setTestEnvValue } from "../test-utils/env.js";
|
||||
import { makeTempDir } from "./exec-approvals-test-helpers.js";
|
||||
|
||||
const requestJsonlSocketMock = vi.hoisted(() => vi.fn());
|
||||
@@ -33,8 +34,7 @@ let resolveExecApprovalsTranscriptPath: ExecApprovalsModule["resolveExecApproval
|
||||
let saveExecApprovals: ExecApprovalsModule["saveExecApprovals"];
|
||||
|
||||
const tempDirs: string[] = [];
|
||||
const originalOpenClawHome = process.env.OPENCLAW_HOME;
|
||||
const originalOpenClawStateDir = process.env.OPENCLAW_STATE_DIR;
|
||||
const testEnvSnapshot = captureEnv(["OPENCLAW_HOME", "OPENCLAW_STATE_DIR"]);
|
||||
|
||||
beforeAll(async () => {
|
||||
({
|
||||
@@ -64,16 +64,7 @@ beforeEach(() => {
|
||||
|
||||
afterEach(() => {
|
||||
vi.restoreAllMocks();
|
||||
if (originalOpenClawHome === undefined) {
|
||||
delete process.env.OPENCLAW_HOME;
|
||||
} else {
|
||||
process.env.OPENCLAW_HOME = originalOpenClawHome;
|
||||
}
|
||||
if (originalOpenClawStateDir === undefined) {
|
||||
delete process.env.OPENCLAW_STATE_DIR;
|
||||
} else {
|
||||
process.env.OPENCLAW_STATE_DIR = originalOpenClawStateDir;
|
||||
}
|
||||
testEnvSnapshot.restore();
|
||||
for (const dir of tempDirs.splice(0)) {
|
||||
fs.rmSync(dir, { recursive: true, force: true });
|
||||
}
|
||||
@@ -82,8 +73,8 @@ afterEach(() => {
|
||||
function createHomeDir(): string {
|
||||
const dir = makeTempDir();
|
||||
tempDirs.push(dir);
|
||||
process.env.OPENCLAW_HOME = dir;
|
||||
delete process.env.OPENCLAW_STATE_DIR;
|
||||
setTestEnvValue("OPENCLAW_HOME", dir);
|
||||
deleteTestEnvValue("OPENCLAW_STATE_DIR");
|
||||
return dir;
|
||||
}
|
||||
|
||||
@@ -144,7 +135,7 @@ describe("exec approvals store helpers", () => {
|
||||
it("uses OPENCLAW_STATE_DIR for default file and socket paths", () => {
|
||||
const dir = createHomeDir();
|
||||
const stateDir = path.join(dir, "custom-state");
|
||||
process.env.OPENCLAW_STATE_DIR = stateDir;
|
||||
setTestEnvValue("OPENCLAW_STATE_DIR", stateDir);
|
||||
|
||||
expect(path.normalize(resolveExecApprovalsPath())).toBe(
|
||||
path.normalize(stateApprovalsFilePath(stateDir)),
|
||||
@@ -182,7 +173,7 @@ describe("exec approvals store helpers", () => {
|
||||
})}\n`,
|
||||
"utf8",
|
||||
);
|
||||
process.env.OPENCLAW_STATE_DIR = stateDir;
|
||||
setTestEnvValue("OPENCLAW_STATE_DIR", stateDir);
|
||||
|
||||
const resolved = resolveExecApprovals("main", {
|
||||
security: "full",
|
||||
@@ -657,7 +648,7 @@ describe("exec approvals store helpers", () => {
|
||||
const linkedHome = `${realHome}-link`;
|
||||
tempDirs.push(realHome, linkedHome);
|
||||
fs.symlinkSync(realHome, linkedHome, "dir");
|
||||
process.env.OPENCLAW_HOME = linkedHome;
|
||||
setTestEnvValue("OPENCLAW_HOME", linkedHome);
|
||||
|
||||
saveExecApprovals({ version: 1, defaults: { security: "full" }, agents: {} });
|
||||
|
||||
@@ -674,7 +665,7 @@ describe("exec approvals store helpers", () => {
|
||||
fs.mkdirSync(linkedStateTarget, { recursive: true });
|
||||
fs.symlinkSync(realHome, linkedHome, "dir");
|
||||
fs.symlinkSync(linkedStateTarget, path.join(realHome, ".openclaw"), "dir");
|
||||
process.env.OPENCLAW_HOME = linkedHome;
|
||||
setTestEnvValue("OPENCLAW_HOME", linkedHome);
|
||||
|
||||
expect(() =>
|
||||
saveExecApprovals({ version: 1, defaults: { security: "full" }, agents: {} }),
|
||||
|
||||
Reference in New Issue
Block a user