From ad16d8a2564fb64bdce41bf82377b7e3c49a3299 Mon Sep 17 00:00:00 2001 From: Erick Zanardo Date: Mon, 28 Feb 2022 11:57:06 -0300 Subject: [PATCH] fixing landing page test --- pubspec.lock | 7 +++++++ pubspec.yaml | 1 + test/helpers/pump_app.dart | 10 ++++++++-- test/landing/view/landing_page_test.dart | 17 +++++++++-------- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 733a870a..86f1fbe5 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -254,6 +254,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.1" + mockingjay: + dependency: "direct dev" + description: + name: mockingjay + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" mocktail: dependency: "direct dev" description: diff --git a/pubspec.yaml b/pubspec.yaml index fe4065fc..f703cd22 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,6 +21,7 @@ dev_dependencies: bloc_test: ^9.0.2 flutter_test: sdk: flutter + mockingjay: ^0.2.0 mocktail: ^0.2.0 very_good_analysis: ^2.4.0 diff --git a/test/helpers/pump_app.dart b/test/helpers/pump_app.dart index 2f1ecb0a..97ca4590 100644 --- a/test/helpers/pump_app.dart +++ b/test/helpers/pump_app.dart @@ -8,10 +8,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:mockingjay/mockingjay.dart'; import 'package:pinball/l10n/l10n.dart'; extension PumpApp on WidgetTester { - Future pumpApp(Widget widget) { + Future pumpApp( + Widget widget, { + MockNavigator? navigator, + }) { return pumpWidget( MaterialApp( localizationsDelegates: const [ @@ -19,7 +23,9 @@ extension PumpApp on WidgetTester { GlobalMaterialLocalizations.delegate, ], supportedLocales: AppLocalizations.supportedLocales, - home: widget, + home: navigator != null + ? MockNavigatorProvider(navigator: navigator, child: widget) + : widget, ), ); } diff --git a/test/landing/view/landing_page_test.dart b/test/landing/view/landing_page_test.dart index 6e280291..d754864c 100644 --- a/test/landing/view/landing_page_test.dart +++ b/test/landing/view/landing_page_test.dart @@ -1,8 +1,6 @@ -import 'dart:async'; - import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:pinball/game/game.dart'; +import 'package:mockingjay/mockingjay.dart'; import 'package:pinball/landing/landing.dart'; import '../../helpers/helpers.dart'; @@ -16,17 +14,20 @@ void main() { testWidgets('tapping on TextButton navigates to PinballGamePage', (tester) async { - // TODO(erickzanardo): Make test pass. - await tester.pumpApp(const LandingPage()); + final navigator = MockNavigator(); + when(() => navigator.push(any())).thenAnswer((_) async {}); + + await tester.pumpApp( + const LandingPage(), + navigator: navigator, + ); await tester.tap( find.byType( TextButton, ), ); - await tester.pumpAndSettle(); - expect(find.byType(PinballGamePage), findsOneWidget); - expect(find.byType(LandingPage), findsNothing); + verify(() => navigator.push(any())).called(1); }); }); }