Spaces:
Runtime error
Runtime error
File size: 1,428 Bytes
46252cd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import { BadRequestException } from '@nestjs/common';
import { CallController } from './call.controller';
import { CallService } from './call.service';
import { CallNotFoundError } from '../../common/errors/call-not-found.error';
describe('CallController', () => {
const build = (service: Partial<Record<keyof CallService, jest.Mock>>) => {
const controller = new CallController(service as unknown as CallService);
return { controller, service };
};
it('POST :callId/reject returns the success envelope', async () => {
const { controller, service } = build({ rejectCall: jest.fn().mockResolvedValue(undefined) });
await expect(controller.reject('s1', 'CALL1')).resolves.toEqual({ success: true });
expect(service.rejectCall).toHaveBeenCalledWith('s1', 'CALL1');
});
it('propagates a service rejection (session not started -> 400)', async () => {
const { controller } = build({
rejectCall: jest.fn().mockRejectedValue(new BadRequestException('Session is not started')),
});
await expect(controller.reject('s1', 'CALL1')).rejects.toThrow(BadRequestException);
});
it('propagates a service rejection (unknown/expired call id -> 404)', async () => {
const { controller } = build({
rejectCall: jest.fn().mockRejectedValue(new CallNotFoundError('CALL1')),
});
await expect(controller.reject('s1', 'CALL1')).rejects.toBeInstanceOf(CallNotFoundError);
});
});
|