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( 'emailChanged updates email', build: () => cubit, act: (c) => c.emailChanged('test@example.com'), expect: () => [isA()], ); blocTest( 'passwordChanged updates password', build: () => cubit, act: (c) => c.passwordChanged('password123'), expect: () => [isA()], ); }); }