48 lines
1.8 KiB
TypeScript
48 lines
1.8 KiB
TypeScript
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();
|
|
});
|
|
});
|