Files
hongjr03 09cadd0148 test(hub): Vitest suite + 三组 unit 测试(22 tests)
用 Vitest 组织测试,对齐 Courseware 半边的测试纪律(非散脚本):
- test/unit/workspace.test.ts: 路径 confinement(读写回环/..逃逸/绝对路径逃逸/
  父目录创建/列举/不存在 error JSON)—— 11 tests
- test/unit/prompt.test.ts: @bot 提取(单 mention/多 mention/纯@bot/无 mention/
  非 JSON/无 text 字段)—— 8 tests
- test/unit/permission.test.ts: roleGrantsEdit 单调性(READ 不含 / EDIT 含 /
  MANAGE 含,ADR-0004 can_mono)—— 3 tests
extractPrompt 导出供测试。修了 test helper 默认参数 bug(显式传 undefined 触发
默认值,绕过 mentions 检查)。
vitest run 22/22 通过;tsc rc=0。
Integration 层(trigger 全链路 + lock WellFormed + 真 cph)待本地 postgres
后再起。
2026-07-07 15:26:53 +08:00

17 lines
475 B
TypeScript

import { describe, it, expect } from "vitest";
import { roleGrantsEdit } from "../../src/permission.js";
describe("roleGrantsEdit (ADR-0004 monotonicity)", () => {
it("READ does not grant edit", () => {
expect(roleGrantsEdit("READ")).toBe(false);
});
it("EDIT grants edit", () => {
expect(roleGrantsEdit("EDIT")).toBe(true);
});
it("MANAGE grants edit (manage ⊇ edit, spec can_mono)", () => {
expect(roleGrantsEdit("MANAGE")).toBe(true);
});
});