import { describe, expect, it } from "bun:test"; import { canAutoApprovePermission, resolvePermissionApproval, } from "../../src/routes/chatPermissionPolicy.js"; describe("permission approval policy", () => { it.each([ "show_chart", "web_search", ])("allows low-risk permission %s", (permission) => { expect(canAutoApprovePermission(permission)).toBe(true); }); it.each([ "bash", "edit", "external_directory", "store_render_ref", "tjwater_server_query", "tjwater_tjwater_server_query", ])( "requires confirmation for permission %s", (permission) => { expect(canAutoApprovePermission(permission)).toBe(false); }, ); it("resolves request, auto, and always modes", () => { expect(resolvePermissionApproval("request", "show_chart").autoApprove).toBe(false); expect(resolvePermissionApproval("auto", "show_chart").autoApprove).toBe(true); expect(resolvePermissionApproval("auto", "bash").autoApprove).toBe(false); expect(resolvePermissionApproval("always", "bash")).toMatchObject({ autoApprove: true, title: "已按始终允许模式放行", }); }); });