116 lines
5.0 KiB
Dart
116 lines
5.0 KiB
Dart
// import 'package:flutter_test/flutter_test.dart';
|
|
// import 'package:mockito/mockito.dart';
|
|
// import 'package:quiz_app/data/models/register/register_request.dart';
|
|
// import 'package:quiz_app/data/services/auth_service.dart';
|
|
// import 'package:quiz_app/feature/register/controller/register_controller.dart';
|
|
|
|
// // Mock class for AuthService
|
|
// class MockAuthService extends Mock implements AuthService {}
|
|
|
|
// void main() {
|
|
// late RegisterController registerController;
|
|
// late MockAuthService mockAuthService;
|
|
|
|
// setUp(() {
|
|
// mockAuthService = MockAuthService();
|
|
// registerController = RegisterController(mockAuthService);
|
|
// });
|
|
|
|
// test('Initial state should have password and confirm password hidden', () {
|
|
// expect(registerController.isPasswordHidden.value, true);
|
|
// expect(registerController.isConfirmPasswordHidden.value, true);
|
|
// });
|
|
|
|
// test('Toggle password visibility works correctly', () {
|
|
// final initial = registerController.isPasswordHidden.value;
|
|
// registerController.togglePasswordVisibility();
|
|
// expect(registerController.isPasswordHidden.value, !initial);
|
|
// });
|
|
|
|
// test('Toggle confirm password visibility works correctly', () {
|
|
// final initial = registerController.isConfirmPasswordHidden.value;
|
|
// registerController.toggleConfirmPasswordVisibility();
|
|
// expect(registerController.isConfirmPasswordHidden.value, !initial);
|
|
// });
|
|
|
|
// test('Invalid email format should show error', () async {
|
|
// registerController.emailController.text = 'invalid-email';
|
|
// registerController.nameController.text = 'John Doe';
|
|
// registerController.bDateController.text = '12-12-2000';
|
|
// registerController.passwordController.text = 'password123';
|
|
// registerController.confirmPasswordController.text = 'password123';
|
|
|
|
// await registerController.onRegister();
|
|
|
|
|
|
|
|
// // Verify no call to register method due to invalid email
|
|
// verifyNever(() => mockAuthService.register(any<RegisterRequestModel>()));
|
|
// });
|
|
|
|
// // test('Invalid date format should show error', () async {
|
|
// // registerController.emailController.text = 'john@example.com';
|
|
// // registerController.nameController.text = 'John Doe';
|
|
// // registerController.bDateController.text = '12/12/2000'; // Invalid format
|
|
// // registerController.passwordController.text = 'password123';
|
|
// // registerController.confirmPasswordController.text = 'password123';
|
|
|
|
// // await registerController.onRegister();
|
|
|
|
// // verifyNever(mockAuthService.register(any));
|
|
// // });
|
|
|
|
// // test('Passwords do not match should show error', () async {
|
|
// // registerController.emailController.text = 'john@example.com';
|
|
// // registerController.nameController.text = 'John Doe';
|
|
// // registerController.bDateController.text = '12-12-2000';
|
|
// // registerController.passwordController.text = 'password123';
|
|
// // registerController.confirmPasswordController.text = 'password456';
|
|
|
|
// // await registerController.onRegister();
|
|
|
|
// // verifyNever(mockAuthService.register(any));
|
|
// // });
|
|
|
|
// // test('Phone number invalid length should show error', () async {
|
|
// // registerController.emailController.text = 'john@example.com';
|
|
// // registerController.nameController.text = 'John Doe';
|
|
// // registerController.bDateController.text = '12-12-2000';
|
|
// // registerController.passwordController.text = 'password123';
|
|
// // registerController.confirmPasswordController.text = 'password123';
|
|
// // registerController.phoneController.text = '123'; // Too short
|
|
|
|
// // await registerController.onRegister();
|
|
|
|
// // verifyNever(mockAuthService.register(any));
|
|
// // });
|
|
|
|
// // test('Successful registration calls AuthService and navigates back', () async {
|
|
// // registerController.emailController.text = 'john@example.com';
|
|
// // registerController.nameController.text = 'John Doe';
|
|
// // registerController.bDateController.text = '12-12-2000';
|
|
// // registerController.passwordController.text = 'password123';
|
|
// // registerController.confirmPasswordController.text = 'password123';
|
|
// // registerController.phoneController.text = '081234567890';
|
|
|
|
// // when(mockAuthService.register(any)).thenAnswer((_) async => {});
|
|
|
|
// // await registerController.onRegister();
|
|
|
|
// // verify(mockAuthService.register(any)).called(1);
|
|
// // });
|
|
|
|
// // test('_isValidDateFormat should return correct results', () {
|
|
// // expect(registerController._isValidDateFormat('12-12-2000'), true);
|
|
// // expect(registerController._isValidDateFormat('31-02-2000'), true); // Format correct, logic not checked
|
|
// // expect(registerController._isValidDateFormat('12/12/2000'), false);
|
|
// // expect(registerController._isValidDateFormat('2000-12-12'), false);
|
|
// // });
|
|
|
|
// // test('_isValidEmail should return correct results', () {
|
|
// // expect(registerController._isValidEmail('test@example.com'), true);
|
|
// // expect(registerController._isValidEmail('test.example.com'), false);
|
|
// // expect(registerController._isValidEmail('test@com'), false);
|
|
// // });
|
|
// }
|