test(auth): add unit tests for various guards and services with mocked dependencies
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { CACHE_MANAGER } from "@nestjs/cache-manager";
|
||||
import { Test, TestingModule } from "@nestjs/testing";
|
||||
import { DatabaseService } from "./database/database.service";
|
||||
import { HealthController } from "./health.controller";
|
||||
@@ -9,6 +10,10 @@ describe("HealthController", () => {
|
||||
execute: jest.fn().mockResolvedValue([]),
|
||||
};
|
||||
|
||||
const mockCacheManager = {
|
||||
set: jest.fn().mockResolvedValue(undefined),
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
controllers: [HealthController],
|
||||
@@ -19,24 +24,42 @@ describe("HealthController", () => {
|
||||
db: mockDb,
|
||||
},
|
||||
},
|
||||
{
|
||||
provide: CACHE_MANAGER,
|
||||
useValue: mockCacheManager,
|
||||
},
|
||||
],
|
||||
}).compile();
|
||||
|
||||
controller = module.get<HealthController>(HealthController);
|
||||
});
|
||||
|
||||
it("should return ok if database is connected", async () => {
|
||||
it("should return ok if database and redis are connected", async () => {
|
||||
mockDb.execute.mockResolvedValue([]);
|
||||
mockCacheManager.set.mockResolvedValue(undefined);
|
||||
const result = await controller.check();
|
||||
expect(result.status).toBe("ok");
|
||||
expect(result.database).toBe("connected");
|
||||
expect(result.redis).toBe("connected");
|
||||
});
|
||||
|
||||
it("should return error if database is disconnected", async () => {
|
||||
mockDb.execute.mockRejectedValue(new Error("DB Error"));
|
||||
mockCacheManager.set.mockResolvedValue(undefined);
|
||||
const result = await controller.check();
|
||||
expect(result.status).toBe("error");
|
||||
expect(result.database).toBe("disconnected");
|
||||
expect(result.message).toBe("DB Error");
|
||||
expect(result.databaseError).toBe("DB Error");
|
||||
expect(result.redis).toBe("connected");
|
||||
});
|
||||
|
||||
it("should return error if redis is disconnected", async () => {
|
||||
mockDb.execute.mockResolvedValue([]);
|
||||
mockCacheManager.set.mockRejectedValue(new Error("Redis Error"));
|
||||
const result = await controller.check();
|
||||
expect(result.status).toBe("error");
|
||||
expect(result.database).toBe("connected");
|
||||
expect(result.redis).toBe("disconnected");
|
||||
expect(result.redisError).toBe("Redis Error");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user