forked from eatvio/eatvio_app
feat(coverage): enhance coverage analysis script to filter generated files and generate detailed markdown report for files with less than 100% coverage
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import 'package:eatvio_app/core/locator_service.dart';
|
||||
import 'package:eatvio_app/core/theme/theme_helper.dart';
|
||||
import 'package:eatvio_app/features/auth/presentation/bloc/reset_password_cubit/reset_password_cubit.dart';
|
||||
import 'package:eatvio_app/features/auth/presentation/pages/forget_password_screen.dart';
|
||||
import 'package:eatvio_app/features/auth/repositories/reset_password_repository.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
||||
import 'forget_password_screen_test.mocks.dart';
|
||||
|
||||
@GenerateMocks([ResetPasswordRepository])
|
||||
void main() {
|
||||
group('ForgetPasswordScreen', () {
|
||||
late MockResetPasswordRepository mockResetPasswordRepository;
|
||||
late ResetPasswordCubit resetPasswordCubit;
|
||||
|
||||
setUp(() async {
|
||||
await sl.reset();
|
||||
mockResetPasswordRepository = MockResetPasswordRepository();
|
||||
resetPasswordCubit = ResetPasswordCubit(
|
||||
resetPasswordRepository: mockResetPasswordRepository,
|
||||
);
|
||||
sl.registerLazySingleton<ResetPasswordCubit>(() => resetPasswordCubit);
|
||||
});
|
||||
|
||||
tearDown(() {
|
||||
resetPasswordCubit.close();
|
||||
});
|
||||
|
||||
Widget createTestWidget({required bool isAuth}) {
|
||||
return MaterialApp(
|
||||
theme: ThemeHelper().themeData(),
|
||||
home: ForgetPasswordScreen(isAuth: isAuth),
|
||||
);
|
||||
}
|
||||
|
||||
testWidgets('displays screen with correct title when isAuth is false', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(createTestWidget(isAuth: false));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(find.text('Восстановление пароля'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('displays screen with correct title when isAuth is true', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(createTestWidget(isAuth: true));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(find.text('Смена пароля'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('displays email field in initial state', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(createTestWidget(isAuth: false));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(find.text('E-mail'), findsOneWidget);
|
||||
expect(find.text('Введите e-mail'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('displays email field in initial state', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(createTestWidget(isAuth: false));
|
||||
await tester.pump(); // Use pump instead of pumpAndSettle
|
||||
|
||||
// Check that email field exists
|
||||
final textFields = find.byType(TextFormField);
|
||||
expect(textFields, findsWidgets);
|
||||
});
|
||||
|
||||
testWidgets('displays button in initial state', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(createTestWidget(isAuth: false));
|
||||
await tester.pump(); // Use pump instead of pumpAndSettle
|
||||
|
||||
// Check that button exists (either "Сбросить пароль" or "Сменить пароль")
|
||||
expect(find.text('Сбросить пароль'), findsOneWidget);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user