TIF_E41211115_Genso_quiz_app/test/controller/register_controller_test.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);
// // });
// }