Files
STCourses/packages/db/test/acl.test.ts
T
2026-10-30 03:04:46 +01:00

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);
});