Files
boss/tests/claw-backend-config.test.ts
2026-04-03 01:36:29 +08:00

66 lines
2.2 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import {
getClawBackendConfigForTesting,
isClawBackendConfiguredForTesting,
} from "../src/lib/execution/backends/claw-config.ts";
function snapshotEnv() {
return {
BOSS_CLAW_ENABLED: process.env.BOSS_CLAW_ENABLED,
BOSS_CLAW_COMMAND: process.env.BOSS_CLAW_COMMAND,
BOSS_CLAW_ARGS: process.env.BOSS_CLAW_ARGS,
BOSS_CLAW_WORKDIR: process.env.BOSS_CLAW_WORKDIR,
BOSS_CLAW_TIMEOUT_MS: process.env.BOSS_CLAW_TIMEOUT_MS,
BOSS_CLAW_DEFAULT_MODEL: process.env.BOSS_CLAW_DEFAULT_MODEL,
};
}
function restoreEnv(snapshot: ReturnType<typeof snapshotEnv>) {
process.env.BOSS_CLAW_ENABLED = snapshot.BOSS_CLAW_ENABLED;
process.env.BOSS_CLAW_COMMAND = snapshot.BOSS_CLAW_COMMAND;
process.env.BOSS_CLAW_ARGS = snapshot.BOSS_CLAW_ARGS;
process.env.BOSS_CLAW_WORKDIR = snapshot.BOSS_CLAW_WORKDIR;
process.env.BOSS_CLAW_TIMEOUT_MS = snapshot.BOSS_CLAW_TIMEOUT_MS;
process.env.BOSS_CLAW_DEFAULT_MODEL = snapshot.BOSS_CLAW_DEFAULT_MODEL;
}
test("Claw backend 在未配置时默认关闭", () => {
const previous = snapshotEnv();
delete process.env.BOSS_CLAW_ENABLED;
delete process.env.BOSS_CLAW_COMMAND;
delete process.env.BOSS_CLAW_ARGS;
delete process.env.BOSS_CLAW_WORKDIR;
delete process.env.BOSS_CLAW_TIMEOUT_MS;
delete process.env.BOSS_CLAW_DEFAULT_MODEL;
const config = getClawBackendConfigForTesting();
assert.equal(config.enabled, false);
assert.equal(isClawBackendConfiguredForTesting(config), false);
restoreEnv(previous);
});
test("Claw backend 在配置完整时返回 command、args 和 timeout", () => {
const previous = snapshotEnv();
process.env.BOSS_CLAW_ENABLED = "true";
process.env.BOSS_CLAW_COMMAND = "claw";
process.env.BOSS_CLAW_ARGS = "run --json";
process.env.BOSS_CLAW_WORKDIR = "/tmp/claw";
process.env.BOSS_CLAW_TIMEOUT_MS = "45000";
const config = getClawBackendConfigForTesting();
assert.equal(config.enabled, true);
assert.equal(config.command, "claw");
assert.deepEqual(config.args, ["run", "--json"]);
assert.equal(config.cwd, "/tmp/claw");
assert.equal(config.timeoutMs, 45000);
assert.equal(isClawBackendConfiguredForTesting(config), true);
restoreEnv(previous);
});