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/register_cubit.dart'; class MockAuthRepository extends Mock implements AuthRepository {} void main() { late RegisterCubit cubit; late MockAuthRepository mockRepository; setUp(() { mockRepository = MockAuthRepository(); cubit = RegisterCubit(mockRepository); }); tearDown(() { cubit.close(); }); group('RegisterCubit', () { test('initial state has pure status', () { expect(cubit.state.status, FormzSubmissionStatus.initial); }); blocTest( 'usernameChanged updates username', build: () => cubit, act: (c) => c.usernameChanged('testuser'), expect: () => [isA()], ); 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()], ); }); }