Files
tm_app/test/view_models/auth_view_model_initialization_test.dart
T
amirrezaghabeli 0653cdb6d7 changes
2025-10-06 08:58:36 +03:30

63 lines
2.2 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:tm_app/view_models/auth_view_model.dart';
import '../mocks/mock_auth_repository.dart';
void main() {
group('AuthViewModel Initialization', () {
late MockAuthRepository mockRepository;
late AuthViewModel authViewModel;
setUp(() {
mockRepository = MockAuthRepository();
authViewModel = AuthViewModel(authRepository: mockRepository);
});
tearDown(() {
authViewModel.dispose();
});
test('should initialize with default values', () {
expect(authViewModel.isLoading, false);
expect(authViewModel.isLoggedIn, false);
expect(authViewModel.isLoadingForgot, false);
expect(authViewModel.isLoadingOtp, false);
expect(authViewModel.isResetPasswordLoading, false);
expect(authViewModel.errorMessage, null);
expect(authViewModel.errorMessageForget, null);
expect(authViewModel.resetPasswordErrorMessage, null);
expect(authViewModel.errorMessageOtp, null);
expect(authViewModel.successMessageOtp, null);
expect(authViewModel.verifyOtpSuccess, false);
expect(authViewModel.loggedInUser, null);
expect(authViewModel.forgotPasswordMessage, null);
expect(authViewModel.resetToken, null);
expect(authViewModel.resetPasswordSuccess, false);
});
test('should initialize controllers with empty text', () {
expect(authViewModel.usernameController.text, isEmpty);
expect(authViewModel.passwordController.text, isEmpty);
expect(authViewModel.emailController.text, isEmpty);
expect(authViewModel.newPasswordController.text, isEmpty);
expect(authViewModel.otpController.text, isEmpty);
});
test('should initialize with password visibility obscured', () {
expect(authViewModel.obscurePassword, true);
expect(authViewModel.obscureForgotPassword, true);
});
test('should not be login enabled with empty fields', () {
expect(authViewModel.isLoginEnabled, false);
});
test('should be login enabled with filled fields', () {
authViewModel.usernameController.text = 'testuser';
authViewModel.passwordController.text = 'testpass';
expect(authViewModel.isLoginEnabled, true);
});
});
}