Files
boss/tests/execution-permission-policy.test.ts

23 lines
860 B
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import { evaluatePermissionPolicyForTesting } from "@/lib/execution/permission-policy";
test("approval_required 群聊在已有待确认推荐时拒绝继续直接执行", () => {
const result = evaluatePermissionPolicyForTesting({
project: {
id: "group-1",
isGroup: true,
collaborationMode: "approval_required",
approvalState: "pending_user",
},
hasPendingDispatchPlan: true,
});
assert.equal(result.allowed, false);
assert.equal(result.requiresApproval, true);
assert.match(result.reason ?? "", /等待确认/);
assert.deepEqual(result.toolPolicy.allowedTools, ["group_dispatch_plan"]);
assert.deepEqual(result.toolPolicy.deniedTools, ["dispatch_execution"]);
assert.equal(result.collaborationPolicy.canDispatchDirectly, false);
});