Files
social-app/apps/test/features/auth/presentation/cubits/login_cubit_test.dart
T
2026-02-25 15:09:29 +08:00

43 lines
1.2 KiB
Dart

import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:formz/formz.dart';
import 'package:mocktail/mocktail.dart';
import 'package:social_app/features/auth/data/auth_repository.dart';
import 'package:social_app/features/auth/presentation/cubits/login_cubit.dart';
class MockAuthRepository extends Mock implements AuthRepository {}
void main() {
late LoginCubit cubit;
late MockAuthRepository mockRepository;
setUp(() {
mockRepository = MockAuthRepository();
cubit = LoginCubit(mockRepository);
});
tearDown(() {
cubit.close();
});
group('LoginCubit', () {
test('initial state has pure status', () {
expect(cubit.state.status, FormzSubmissionStatus.initial);
});
blocTest<LoginCubit, LoginState>(
'emailChanged updates email',
build: () => cubit,
act: (c) => c.emailChanged('test@example.com'),
expect: () => [isA<LoginState>()],
);
blocTest<LoginCubit, LoginState>(
'passwordChanged updates password',
build: () => cubit,
act: (c) => c.passwordChanged('password123'),
expect: () => [isA<LoginState>()],
);
});
}