Compare commits
2 Commits
develop
...
f672d6467b
| Author | SHA1 | Date | |
|---|---|---|---|
| f672d6467b | |||
| 0f32cee620 |
@@ -0,0 +1,42 @@
|
|||||||
|
// #115 - E2E tests for GET /permissions
|
||||||
|
// Handler statique (pas de DB), test direct du handler
|
||||||
|
|
||||||
|
import { assertEquals, assertExists } from "@std/assert";
|
||||||
|
import { makeEmployeeContext, makeGetRequest } from "../helpers/handler.ts";
|
||||||
|
import { handler as permissionsHandler } from "$apps/admin/api/permissions.ts";
|
||||||
|
|
||||||
|
Deno.test({
|
||||||
|
name: "e2e permissions: GET /permissions returns all 9 permissions",
|
||||||
|
fn() {
|
||||||
|
const res = permissionsHandler.GET!(
|
||||||
|
makeGetRequest("/permissions"),
|
||||||
|
makeEmployeeContext(),
|
||||||
|
);
|
||||||
|
assertEquals(res.status, 200);
|
||||||
|
return res.text().then((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() {
|
||||||
|
const res = 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,
|
||||||
|
});
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
// #115 - Unit tests for GET /permissions
|
||||||
|
|
||||||
|
import { assertEquals, assertExists } from "@std/assert";
|
||||||
|
import { mockFetch, restoreFetch } from "../helpers/api_mock.ts";
|
||||||
|
|
||||||
|
interface Permission {
|
||||||
|
id: string;
|
||||||
|
nom: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const EXPECTED_PERMISSIONS: Permission[] = [
|
||||||
|
{ id: "student_read", nom: "Consulter les élèves" },
|
||||||
|
{ id: "student_write", nom: "Gérer les élèves" },
|
||||||
|
{ id: "note_read", nom: "Consulter les notes" },
|
||||||
|
{ id: "note_write", nom: "Gérer les notes" },
|
||||||
|
{ id: "module_read", nom: "Consulter les modules" },
|
||||||
|
{ id: "module_write", nom: "Gérer les modules" },
|
||||||
|
{ id: "user_read", nom: "Consulter les utilisateurs" },
|
||||||
|
{ id: "user_write", nom: "Gérer les utilisateurs" },
|
||||||
|
{ id: "role_write", nom: "Gérer les rôles" },
|
||||||
|
];
|
||||||
|
|
||||||
|
Deno.test("permissions: known permission ids", () => {
|
||||||
|
const ids = EXPECTED_PERMISSIONS.map((p) => p.id);
|
||||||
|
assertEquals(ids.includes("student_read"), true);
|
||||||
|
assertEquals(ids.includes("student_write"), true);
|
||||||
|
assertEquals(ids.includes("note_read"), true);
|
||||||
|
assertEquals(ids.includes("role_write"), true);
|
||||||
|
assertEquals(ids.length, 9);
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test("permissions: all permissions have string id and nom", () => {
|
||||||
|
for (const p of EXPECTED_PERMISSIONS) {
|
||||||
|
assertEquals(typeof p.id, "string");
|
||||||
|
assertEquals(typeof p.nom, "string");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test("mock API: GET /permissions returns all permissions", async () => {
|
||||||
|
mockFetch({ "/permissions": EXPECTED_PERMISSIONS });
|
||||||
|
try {
|
||||||
|
const res = await fetch("http://localhost/api/permissions");
|
||||||
|
assertEquals(res.status, 200);
|
||||||
|
const data: Permission[] = await res.json();
|
||||||
|
assertEquals(data.length, 9);
|
||||||
|
assertExists(data.find((p) => p.id === "student_read"));
|
||||||
|
assertExists(data.find((p) => p.id === "role_write"));
|
||||||
|
} finally {
|
||||||
|
restoreFetch();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test("mock API: GET /permissions - each permission has id and nom", async () => {
|
||||||
|
mockFetch({ "/permissions": EXPECTED_PERMISSIONS });
|
||||||
|
try {
|
||||||
|
const res = await fetch("http://localhost/api/permissions");
|
||||||
|
const data: Permission[] = await res.json();
|
||||||
|
for (const p of data) {
|
||||||
|
assertExists(p.id);
|
||||||
|
assertExists(p.nom);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
restoreFetch();
|
||||||
|
}
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user