canina/backend/src/auth/auth.controller.spec.ts
parsa aghaei 62bd8811fa
All checks were successful
Deploy Canina / deploy (push) Successful in 4m58s
style: apply standard ESLint & Prettier formatting across backend
2026-07-29 15:41:53 +03:30

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');
});
});