diff --git a/app/integration_test/faq_test.dart b/app/integration_test/faq_test.dart new file mode 100644 index 000000000..1f1ddc516 --- /dev/null +++ b/app/integration_test/faq_test.dart @@ -0,0 +1,54 @@ +import 'package:app/common/module.dart'; +import 'package:app/faq/constants.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:integration_test/integration_test.dart'; + +void main() { + final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + + binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.onlyPumps; + + group('integration test for the faq page', () { + final appRouter = AppRouter(); + final faqWidget = MaterialApp.router( + debugShowCheckedModeBanner: false, + routeInformationParser: appRouter.defaultRouteParser(), + routerDelegate: appRouter.delegate( + initialDeepLink: 'main/faq', + ), + localizationsDelegates: [ + AppLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: [Locale('en', '')], + ); + + testWidgets('All questions are loaded and expansion tiles can be open', + (tester) async { + await tester.pumpWidget(faqWidget); + await tester.pumpAndSettle(); + + expect( + find + .descendant( + of: find.byKey(ValueKey('questions_column')), + matching: find.byType(ExpansionTile), + ) + .evaluate() + .length, + faqList.length, + ); + + expect(find.text(faqList[0].question), findsOneWidget); + expect(find.text(faqList[0].answer), findsNothing); + + await tester.tap(find.byType(ExpansionTile).first); + await tester.pumpAndSettle(); + + expect(find.text(faqList[0].answer), findsOneWidget); + }); + }); +} diff --git a/app/integration_test/onboarding_tests.dart b/app/integration_test/onboarding_test.dart similarity index 100% rename from app/integration_test/onboarding_tests.dart rename to app/integration_test/onboarding_test.dart diff --git a/app/lib/faq/pages/faq.dart b/app/lib/faq/pages/faq.dart index 2d2db864d..197dd38c6 100644 --- a/app/lib/faq/pages/faq.dart +++ b/app/lib/faq/pages/faq.dart @@ -10,6 +10,7 @@ class FaqPage extends StatelessWidget { child: Padding( padding: const EdgeInsets.all(8), child: Column( + key: Key('questions_column'), children: [ _buildHeaderCard(context), SizedBox(height: 8), diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 15d15c46b..5c87c18de 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -44,14 +44,14 @@ dependencies: dev_dependencies: auto_route_generator: ^4.2.0 build_runner: ^2.1.11 - integration_test: - sdk: flutter flutter_launcher_icons: ^0.9.3 flutter_lints: ^2.0.1 flutter_test: sdk: flutter freezed: ^2.0.3+1 hive_generator: ^1.1.3 + integration_test: + sdk: flutter json_serializable: ^6.2.0 flutter: