forked from EduCraft/curriculum-project-hub
09cadd0148
用 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 后再起。
17 lines
475 B
TypeScript
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);
|
|
});
|
|
});
|