test: add unit tests for messaging, comments, events, and user services
- Added comprehensive unit tests for `MessagesService`, `CommentsService`, `EventsGateway`, and enhancements in `UsersService`. - Ensured proper mocking and test coverage for newly introduced dependencies like `EventsGateway` and `RBACService`.
This commit is contained in:
52
backend/src/realtime/events.gateway.spec.ts
Normal file
52
backend/src/realtime/events.gateway.spec.ts
Normal file
@@ -0,0 +1,52 @@
|
||||
import { ConfigService } from "@nestjs/config";
|
||||
import { Test, TestingModule } from "@nestjs/testing";
|
||||
import { Server } from "socket.io";
|
||||
import { JwtService } from "../crypto/services/jwt.service";
|
||||
import { EventsGateway } from "./events.gateway";
|
||||
|
||||
describe("EventsGateway", () => {
|
||||
let gateway: EventsGateway;
|
||||
let jwtService: JwtService;
|
||||
|
||||
const mockJwtService = {
|
||||
verifyJwt: jest.fn(),
|
||||
};
|
||||
|
||||
const mockConfigService = {
|
||||
get: jest.fn().mockReturnValue("secret-password-32-chars-long-!!!"),
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [
|
||||
EventsGateway,
|
||||
{ provide: JwtService, useValue: mockJwtService },
|
||||
{ provide: ConfigService, useValue: mockConfigService },
|
||||
],
|
||||
}).compile();
|
||||
|
||||
gateway = module.get<EventsGateway>(EventsGateway);
|
||||
jwtService = module.get<JwtService>(JwtService);
|
||||
gateway.server = {
|
||||
to: jest.fn().mockReturnThis(),
|
||||
emit: jest.fn(),
|
||||
} as any;
|
||||
});
|
||||
|
||||
it("should be defined", () => {
|
||||
expect(gateway).toBeDefined();
|
||||
});
|
||||
|
||||
describe("sendToUser", () => {
|
||||
it("should emit event to user room", () => {
|
||||
const userId = "user123";
|
||||
const event = "test_event";
|
||||
const data = { foo: "bar" };
|
||||
|
||||
gateway.sendToUser(userId, event, data);
|
||||
|
||||
expect(gateway.server.to).toHaveBeenCalledWith(`user:${userId}`);
|
||||
expect(gateway.server.to(`user:${userId}`).emit).toHaveBeenCalledWith(event, data);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user