50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { Test, TestingModule } from '@nestjs/testing';
|
|
import { AuthController } from './auth.controller';
|
|
import { AuthService } from './auth.service';
|
|
|
|
describe('AuthController', () => {
|
|
let controller: AuthController;
|
|
let service: AuthService;
|
|
|
|
const mockAuthService = {
|
|
sendOtp: jest
|
|
.fn()
|
|
.mockResolvedValue({ success: true, message: 'کد تایید ارسال شد' }),
|
|
verifyOtp: jest
|
|
.fn()
|
|
.mockResolvedValue({ success: true, data: { accessToken: 'token' } }),
|
|
};
|
|
|
|
beforeEach(async () => {
|
|
const module: TestingModule = await Test.createTestingModule({
|
|
controllers: [AuthController],
|
|
providers: [{ provide: AuthService, useValue: mockAuthService }],
|
|
}).compile();
|
|
|
|
controller = module.get<AuthController>(AuthController);
|
|
service = module.get<AuthService>(AuthService);
|
|
});
|
|
|
|
afterEach(() => {
|
|
jest.clearAllMocks();
|
|
});
|
|
|
|
it('should be defined', () => {
|
|
expect(controller).toBeDefined();
|
|
});
|
|
|
|
it('should call sendOtp on service', async () => {
|
|
const dto = { phoneNumber: '09123456789' };
|
|
const result = await controller.sendOtp(dto);
|
|
expect(service.sendOtp).toHaveBeenCalledWith(dto);
|
|
expect(result.success).toBe(true);
|
|
});
|
|
|
|
it('should call verifyOtp on service', async () => {
|
|
const dto = { phoneNumber: '09123456789', code: '12345' };
|
|
const result = await controller.verifyOtp(dto);
|
|
expect(service.verifyOtp).toHaveBeenCalledWith(dto);
|
|
expect(result.data.accessToken).toBe('token');
|
|
});
|
|
});
|