Files
AgentCompany/tests/unit/run-tools-env.test.ts
T

49 lines
1.5 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { createRunScopedBashOptions } from "../../src/main/worker/runtime/run-tools";
describe("run-scoped bash environment", () => {
it("merges run env into the spawned command environment", () => {
const options = createRunScopedBashOptions({
AGENT_COMPANY_RUN_ID: "run-a",
AGENT_COMPANY_API_KEY: "secret-a",
});
const context = options.spawnHook?.({
command: "env",
cwd: "/tmp",
env: {
PATH: "/usr/bin",
AGENT_COMPANY_RUN_ID: "base",
},
});
expect(context?.env.PATH).toBe("/usr/bin");
expect(context?.env.AGENT_COMPANY_RUN_ID).toBe("run-a");
expect(context?.env.AGENT_COMPANY_API_KEY).toBe("secret-a");
});
it("keeps two run env hooks independent", () => {
const runA = createRunScopedBashOptions({ AGENT_COMPANY_RUN_ID: "run-a" });
const runB = createRunScopedBashOptions({ AGENT_COMPANY_RUN_ID: "run-b" });
const base = { command: "env", cwd: "/tmp", env: { PATH: "/usr/bin" } };
expect(runA.spawnHook?.(base).env.AGENT_COMPANY_RUN_ID).toBe("run-a");
expect(runB.spawnHook?.(base).env.AGENT_COMPANY_RUN_ID).toBe("run-b");
});
it("freezes the env snapshot at factory creation", () => {
const env = { AGENT_COMPANY_RUN_ID: "run-a" };
const options = createRunScopedBashOptions(env);
env.AGENT_COMPANY_RUN_ID = "mutated";
const context = options.spawnHook?.({
command: "env",
cwd: "/tmp",
env: {},
});
expect(context?.env.AGENT_COMPANY_RUN_ID).toBe("run-a");
});
});