Unit tests
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { SseController } from './sse.controller';
|
||||
import { SseTicketService } from './sse-ticket.service';
|
||||
import { UserService } from 'src/modules/user/user.service';
|
||||
import { JwtService } from '@nestjs/jwt';
|
||||
import { ConfigModule, ConfigService } from '@nestjs/config';
|
||||
import { AuthService } from 'src/modules/auth/auth.service';
|
||||
import { SseService } from './sse.service';
|
||||
|
||||
describe('SseController', () => {
|
||||
let controller: SseController;
|
||||
@@ -7,6 +13,16 @@ describe('SseController', () => {
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
controllers: [SseController],
|
||||
imports: [ConfigModule],
|
||||
providers: [
|
||||
ConfigService,
|
||||
{ provide: JwtService, useClass: MockJwTService },
|
||||
{ provide: SseTicketService, useClass: MockSseTicketService },
|
||||
{ provide: UserService, useClass: MockUserService },
|
||||
{ provide: AuthService, useClass: MockAuthService },
|
||||
{ provide: SseService, useClass: MockSSEService }
|
||||
|
||||
]
|
||||
}).compile();
|
||||
|
||||
controller = module.get<SseController>(SseController);
|
||||
@@ -15,4 +31,36 @@ describe('SseController', () => {
|
||||
it('should be defined', () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
|
||||
it('should generate a Ticket', () => {
|
||||
const t = controller.getTicket({ user: { id: 123}} as any);
|
||||
expect(controller['ticketService'].generateTicket).toHaveBeenCalled()
|
||||
});
|
||||
|
||||
it('should generate a SSE stream', async () => {
|
||||
await controller.sse('abc');
|
||||
expect(controller["sseService"].register).toHaveBeenCalled();
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
class MockSseTicketService {
|
||||
generateTicket = jest.fn().mockImplementation( (id) => {
|
||||
return {ticket: 'test-ticket-id'}
|
||||
});
|
||||
|
||||
getUserIdToTicket = jest.fn().mockImplementation( (ticket) => {
|
||||
return 99;
|
||||
})
|
||||
}
|
||||
|
||||
class MockSSEService {
|
||||
register = jest.fn().mockImplementation( (id) => {
|
||||
return new Promise(resolve => resolve(null))
|
||||
})
|
||||
}
|
||||
|
||||
class MockUserService { }
|
||||
|
||||
class MockJwTService {}
|
||||
class MockAuthService {}
|
||||
Reference in New Issue
Block a user