Adds aclRepo to @stc/db for canView. Co-Authored-By: Claude Opus 5.5 <[email protected]>
18 lines
809 B
TypeScript
18 lines
809 B
TypeScript
import { expect } from "bun:test";
|
|
import { forEachDb } from "./helpers";
|
|
import { aclRepo } from "../src";
|
|
|
|
forEachDb("aclRepo lists ACL rows and detects authors", async (db) => {
|
|
await db.sql`INSERT INTO course_acl (course_id, principal_type, principal_id) VALUES ('c', 'user', 'u1'), ('c', 'group', 'g1'), ('d', 'user', 'u2')`;
|
|
await db.sql`INSERT INTO course_authors (course_id, user_id) VALUES ('c', 'a1')`;
|
|
const r = aclRepo(db);
|
|
expect(await r.listForCourse("c")).toEqual([
|
|
{ principal_type: "group", principal_id: "g1" },
|
|
{ principal_type: "user", principal_id: "u1" },
|
|
]);
|
|
expect(await r.listForCourse("none")).toEqual([]);
|
|
expect(await r.isAuthor("c", "a1")).toBe(true);
|
|
expect(await r.isAuthor("c", "u1")).toBe(false);
|
|
expect(await r.isAuthor("d", "a1")).toBe(false);
|
|
});
|