test(frontend): Coverage verbeteren
This commit is contained in:
parent
c47da0c826
commit
4a6b6ee061
10 changed files with 387 additions and 16 deletions
71
frontend/tests/controllers/teacher-controller.test.ts
Normal file
71
frontend/tests/controllers/teacher-controller.test.ts
Normal file
|
@ -0,0 +1,71 @@
|
|||
import { beforeEach, describe, expect, it } from 'vitest';
|
||||
import { TeacherController } from '../../src/controllers/teachers';
|
||||
|
||||
describe("Test controller teachers", () => {
|
||||
let controller: TeacherController;
|
||||
|
||||
beforeEach(async () => {
|
||||
controller = new TeacherController();
|
||||
});
|
||||
|
||||
it("Get all teachers", async () => {
|
||||
const data = await controller.getAll(true);
|
||||
expect(data.teachers).to.have.length.greaterThan(0);
|
||||
expect(data.teachers[0]).to.have.property("username");
|
||||
expect(data.teachers[0]).to.have.property("firstName");
|
||||
expect(data.teachers[0]).to.have.property("lastName");
|
||||
});
|
||||
|
||||
it("Get teacher by username", async () => {
|
||||
const username = "testleerkracht1";
|
||||
const data = await controller.getByUsername(username);
|
||||
expect(data.teacher.username).to.equal(username);
|
||||
expect(data.teacher).to.have.property("firstName");
|
||||
expect(data.teacher).to.have.property("lastName");
|
||||
});
|
||||
|
||||
it("Get teacher by non-existent username", async () => {
|
||||
const username = "nonexistentuser";
|
||||
await expect(controller.getByUsername(username)).rejects.toThrow();
|
||||
});
|
||||
|
||||
it("Create a new teacher", async () => {
|
||||
const newTeacher = {
|
||||
username: "newteacher",
|
||||
firstName: "New",
|
||||
lastName: "Teacher",
|
||||
};
|
||||
const data = await controller.createTeacher(newTeacher);
|
||||
expect(data.teacher.username).to.equal(newTeacher.username);
|
||||
expect(data.teacher.firstName).to.equal(newTeacher.firstName);
|
||||
expect(data.teacher.lastName).to.equal(newTeacher.lastName);
|
||||
});
|
||||
|
||||
it("Delete a teacher", async () => {
|
||||
const username = "newteacher";
|
||||
const data = await controller.deleteTeacher(username);
|
||||
expect(data).toBeTruthy();
|
||||
});
|
||||
|
||||
it("Handle deletion of non-existent teacher", async () => {
|
||||
const username = "nonexistentuser";
|
||||
await expect(controller.deleteTeacher(username)).rejects.toThrow();
|
||||
});
|
||||
|
||||
it("Get classes for a teacher", async () => {
|
||||
const username = "testleerkracht1";
|
||||
const data = await controller.getClasses(username, true);
|
||||
expect(data.classes).to.have.length.greaterThan(0);
|
||||
expect(data.classes[0]).to.have.property("id");
|
||||
expect(data.classes[0]).to.have.property("displayName");
|
||||
});
|
||||
|
||||
it("Get students for a teacher", async () => {
|
||||
const username = "testleerkracht1";
|
||||
const data = await controller.getStudents(username, true);
|
||||
expect(data.students).to.have.length.greaterThan(0);
|
||||
expect(data.students[0]).to.have.property("username");
|
||||
expect(data.students[0]).to.have.property("firstName");
|
||||
expect(data.students[0]).to.have.property("lastName");
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue