import 'package:eatvio_app/app_keys.dart'; import 'package:eatvio_app/core/app_initializer.dart'; import 'package:eatvio_app/core/env_config.dart'; import 'package:eatvio_app/features/feed/presentation/pages/feed_screen.dart'; import 'package:eatvio_app/main.dart' as app; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import '../common_cases/skip_welcome_screen.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); setUpAll(() async { await AppInitializer.initialize(buildType: AppBuildType.tests); }); testWidgets('Signs in successfully with valid credentials', (WidgetTester tester) async { await tester.pumpWidget(const app.MyApp()); await tester.pumpAndSettle(const Duration(seconds: 3)); await skipWelcomeScreen(tester); final emailFieldFinder = find.byKey(AppKeys.emailTextFieldAuthScreen); final passwordFieldFinder = find.byKey(AppKeys.passwordTextFieldAuthScreen); final signInButtonFinder = find.byKey(AppKeys.signInButtonAuthScreen); expect(emailFieldFinder, findsOneWidget, reason: 'Email text field should be found.'); expect(passwordFieldFinder, findsOneWidget, reason: 'Password text field should be found.'); expect(signInButtonFinder, findsOneWidget, reason: 'Sign In button should be found.'); await tester.enterText(emailFieldFinder, EnvConfig.testEmail); await tester.enterText(passwordFieldFinder, EnvConfig.testPassword); await tester.pumpAndSettle(); await tester.tap(signInButtonFinder); await tester.pumpAndSettle(const Duration(seconds: 3)); expect(FeedScreen, findsOne, reason: 'Feed screen should be visible after successful login and navigation.'); }); }