f162fcaadc
Add role_write permission to permissions table and update migrations. Update e2e tests to use DB integration and seed permissions. Add seedPermissions helper.
61 lines
2.1 KiB
TypeScript
61 lines
2.1 KiB
TypeScript
// #115 - E2E tests for GET /permissions
|
|
|
|
import { assertEquals, assertExists } from "@std/assert";
|
|
import { makeEmployeeContext, makeGetRequest } from "../helpers/handler.ts";
|
|
import {
|
|
seedPermissions,
|
|
truncateAll,
|
|
} from "../helpers/db_integration.ts";
|
|
import { handler as permissionsHandler } from "$apps/admin/api/permissions.ts";
|
|
|
|
const PERMISSIONS = [
|
|
{ id: "note_read", nom: "Consulter les notes des étudiants" },
|
|
{ id: "note_write", nom: "Saisir et modifier les notes" },
|
|
{ id: "student_read", nom: "Consulter la liste des étudiants" },
|
|
{ id: "student_write", nom: "Gérer les étudiants (ajout, modification, suppression)" },
|
|
{ id: "module_read", nom: "Consulter les modules et enseignements" },
|
|
{ id: "module_write", nom: "Gérer les modules et enseignements" },
|
|
{ id: "user_read", nom: "Consulter les utilisateurs et leurs rôles" },
|
|
{ id: "user_write", nom: "Gérer les utilisateurs et leurs rôles" },
|
|
{ id: "role_write", nom: "Gérer les rôles et leurs permissions" },
|
|
];
|
|
|
|
Deno.test({
|
|
name: "e2e permissions: GET /permissions returns all 9 permissions",
|
|
async fn() {
|
|
await truncateAll();
|
|
await seedPermissions(PERMISSIONS);
|
|
const res = await permissionsHandler.GET!(
|
|
makeGetRequest("/permissions"),
|
|
makeEmployeeContext(),
|
|
);
|
|
assertEquals(res.status, 200);
|
|
const text = await res.text();
|
|
const data = JSON.parse(text);
|
|
assertEquals(data.length, 9);
|
|
assertExists(data.find((p: { id: string }) => p.id === "student_read"));
|
|
assertExists(data.find((p: { id: string }) => p.id === "role_write"));
|
|
},
|
|
sanitizeResources: false,
|
|
sanitizeOps: false,
|
|
});
|
|
|
|
Deno.test({
|
|
name: "e2e permissions: GET /permissions - all entries have id and nom",
|
|
async fn() {
|
|
await truncateAll();
|
|
await seedPermissions(PERMISSIONS);
|
|
const res = await permissionsHandler.GET!(
|
|
makeGetRequest("/permissions"),
|
|
makeEmployeeContext(),
|
|
);
|
|
const data: { id: string; nom: string }[] = await res.json();
|
|
for (const p of data) {
|
|
assertEquals(typeof p.id, "string");
|
|
assertEquals(typeof p.nom, "string");
|
|
}
|
|
},
|
|
sanitizeResources: false,
|
|
sanitizeOps: false,
|
|
});
|