66 lines
2.2 KiB
TypeScript
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);
|
|
});
|