diff --git a/backend/src/admin/admin.controller.spec.ts b/backend/src/admin/admin.controller.spec.ts new file mode 100644 index 0000000..44b4d15 --- /dev/null +++ b/backend/src/admin/admin.controller.spec.ts @@ -0,0 +1,62 @@ +jest.mock("uuid", () => ({ + v4: jest.fn(() => "mocked-uuid"), +})); + +jest.mock("@noble/post-quantum/ml-kem.js", () => ({ + ml_kem768: { + keygen: jest.fn(), + encapsulate: jest.fn(), + decapsulate: jest.fn(), + }, +})); + +jest.mock("jose", () => ({ + SignJWT: jest.fn().mockReturnValue({ + setProtectedHeader: jest.fn().mockReturnThis(), + setIssuedAt: jest.fn().mockReturnThis(), + setExpirationTime: jest.fn().mockReturnThis(), + sign: jest.fn().mockResolvedValue("mocked-jwt"), + }), + jwtVerify: jest.fn(), +})); + +import { Test, TestingModule } from "@nestjs/testing"; +import { AuthGuard } from "../auth/guards/auth.guard"; +import { RolesGuard } from "../auth/guards/roles.guard"; +import { AdminController } from "./admin.controller"; +import { AdminService } from "./admin.service"; + +describe("AdminController", () => { + let controller: AdminController; + let service: AdminService; + + const mockAdminService = { + getStats: jest.fn(), + }; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [AdminController], + providers: [{ provide: AdminService, useValue: mockAdminService }], + }) + .overrideGuard(AuthGuard) + .useValue({ canActivate: () => true }) + .overrideGuard(RolesGuard) + .useValue({ canActivate: () => true }) + .compile(); + + controller = module.get(AdminController); + service = module.get(AdminService); + }); + + it("should be defined", () => { + expect(controller).toBeDefined(); + }); + + describe("getStats", () => { + it("should call service.getStats", async () => { + await controller.getStats(); + expect(service.getStats).toHaveBeenCalled(); + }); + }); +});