mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-19 14:00:51 +00:00
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
ensureOpenClawExecMarkerOnProcess,
|
|
markOpenClawExecEnv,
|
|
OPENCLAW_CLI_ENV_VALUE,
|
|
OPENCLAW_CLI_ENV_VAR,
|
|
} from "./openclaw-exec-env.js";
|
|
|
|
describe("markOpenClawExecEnv", () => {
|
|
it("returns a cloned env object with the exec marker set", () => {
|
|
const env = { PATH: "/usr/bin", OPENCLAW_CLI: "0" };
|
|
const marked = markOpenClawExecEnv(env);
|
|
|
|
expect(marked).toEqual({
|
|
PATH: "/usr/bin",
|
|
OPENCLAW_CLI: OPENCLAW_CLI_ENV_VALUE,
|
|
});
|
|
expect(marked).not.toBe(env);
|
|
expect(env.OPENCLAW_CLI).toBe("0");
|
|
});
|
|
});
|
|
|
|
describe("ensureOpenClawExecMarkerOnProcess", () => {
|
|
it("mutates and returns the provided process env", () => {
|
|
const env: NodeJS.ProcessEnv = { PATH: "/usr/bin" };
|
|
|
|
expect(ensureOpenClawExecMarkerOnProcess(env)).toBe(env);
|
|
expect(env[OPENCLAW_CLI_ENV_VAR]).toBe(OPENCLAW_CLI_ENV_VALUE);
|
|
});
|
|
|
|
it("defaults to mutating process.env when no env object is provided", () => {
|
|
const previous = process.env[OPENCLAW_CLI_ENV_VAR];
|
|
delete process.env[OPENCLAW_CLI_ENV_VAR];
|
|
|
|
try {
|
|
expect(ensureOpenClawExecMarkerOnProcess()).toBe(process.env);
|
|
expect(process.env[OPENCLAW_CLI_ENV_VAR]).toBe(OPENCLAW_CLI_ENV_VALUE);
|
|
} finally {
|
|
if (previous === undefined) {
|
|
delete process.env[OPENCLAW_CLI_ENV_VAR];
|
|
} else {
|
|
process.env[OPENCLAW_CLI_ENV_VAR] = previous;
|
|
}
|
|
}
|
|
});
|
|
});
|