23 lines
860 B
TypeScript
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);
|
|
});
|