import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:mocktail/mocktail.dart'; import 'package:rasadyar_inspection/presentation/pages/auth/view.dart'; import 'package:rasadyar_inspection/presentation/pages/auth/logic.dart'; import 'package:rasadyar_core/core.dart'; class MockAuthLogic extends GetxController with Mock implements AuthLogic {} class MockTokenStorageService extends Mock implements TokenStorageService {} void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); group('Inspection Module Integration Tests', () { late MockAuthLogic mockAuthLogic; late MockTokenStorageService mockTokenService; setUp(() { mockAuthLogic = MockAuthLogic(); mockTokenService = MockTokenStorageService(); // Setup mock behaviors mockAuthLogic.textAnimation = AlwaysStoppedAnimation(1.0); mockAuthLogic.isLoading = false.obs; mockAuthLogic.usernameController = TextEditingController().obs; mockAuthLogic.passwordController = TextEditingController().obs; Get.put(mockAuthLogic); Get.put(mockTokenService); }); tearDown(() { Get.reset(); }); testWidgets('should complete authentication flow', (WidgetTester tester) async { // Act await tester.pumpWidget( MaterialApp( home: AuthPage(), ), ); // Assert - Verify auth page loads correctly expect(find.text('به سامانه رصدیار خوش آمدید!'), findsOneWidget); expect(find.text('سامانه رصد و پایش زنجیره تامین، تولید و توزیع کالا های اساسی'), findsOneWidget); // Test page navigation and UI interactions await tester.pumpAndSettle(); expect(find.byType(Scaffold), findsOneWidget); expect(find.byType(FadeTransition), findsOneWidget); }); testWidgets('should handle back navigation correctly', (WidgetTester tester) async { // Act await tester.pumpWidget( MaterialApp( home: AuthPage(), ), ); // Verify PopScope behavior final popScope = tester.widget(find.byType(PopScope)); expect(popScope.canPop, false); // Test that back button handling works await tester.pump(); expect(find.byType(AuthPage), findsOneWidget); }); testWidgets('should display welcome animation correctly', (WidgetTester tester) async { // Act await tester.pumpWidget( MaterialApp( home: AuthPage(), ), ); // Assert - Check animation components expect(find.byType(FadeTransition), findsOneWidget); expect(find.byType(Column), findsOneWidget); // Verify text styling final welcomeText = tester.widget( find.text('به سامانه رصدیار خوش آمدید!') ); expect(welcomeText.style?.color, Colors.white); }); }); }