From 4f9326e8cc2f7004189c411f7dc2052d9473a4e4 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Thu, 24 Apr 2025 17:12:23 +0200 Subject: [PATCH] test(frontend): Themes --- .../controllers/teacher-controller.test.ts | 18 ------- .../controllers/theme-controller.test.ts | 48 +++++++++++++++++++ 2 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 frontend/tests/controllers/theme-controller.test.ts diff --git a/frontend/tests/controllers/teacher-controller.test.ts b/frontend/tests/controllers/teacher-controller.test.ts index 9d634225..12d81350 100644 --- a/frontend/tests/controllers/teacher-controller.test.ts +++ b/frontend/tests/controllers/teacher-controller.test.ts @@ -29,24 +29,6 @@ describe("Test controller teachers", () => { 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(); diff --git a/frontend/tests/controllers/theme-controller.test.ts b/frontend/tests/controllers/theme-controller.test.ts new file mode 100644 index 00000000..e58fa10e --- /dev/null +++ b/frontend/tests/controllers/theme-controller.test.ts @@ -0,0 +1,48 @@ +import { describe, it, expect, beforeEach } from "vitest"; +import { ThemeController } from "../../src/controllers/themes"; + +describe("ThemeController Tests", () => { + let controller: ThemeController; + + beforeEach(() => { + controller = new ThemeController(); + }); + + it("should fetch all themes", async () => { + const result = await controller.getAll(); + expect(Array.isArray(result)).toBe(true); + expect(result.length).toBeGreaterThan(0); + expect(result[0]).toHaveProperty("key"); + expect(result[0]).toHaveProperty("title"); + expect(result[0]).toHaveProperty("description"); + expect(result[0]).toHaveProperty("image"); + }); + + it("should fetch all themes filtered by language", async () => { + const language = "en"; + const result = await controller.getAll(language); + expect(Array.isArray(result)).toBe(true); + expect(result.length).toBeGreaterThan(0); + result.forEach((theme) => { + expect(theme).toHaveProperty("key"); + expect(theme).toHaveProperty("title"); + expect(theme).toHaveProperty("description"); + expect(theme).toHaveProperty("image"); + }); + }); + + it("should fetch HRUIDs by theme key", async () => { + const themeKey = "kiks"; + const result = await controller.getHruidsByKey(themeKey); + expect(Array.isArray(result)).toBe(true); + expect(result.length).toBeGreaterThan(0); + result.forEach((hruid) => { + expect(typeof hruid).toBe("string"); + }); + }); + + it("should handle fetching HRUIDs for a non-existent theme key", async () => { + const themeKey = "nonexistent"; + await expect(controller.getHruidsByKey(themeKey)).rejects.toThrow(); + }); +});