feat: added navigator helper method

pull/51/head
RuiAlonso 4 years ago
parent 6f51e968a6
commit 7e82316824

@ -8,4 +8,5 @@ export 'builders.dart';
export 'extensions.dart'; export 'extensions.dart';
export 'key_testers.dart'; export 'key_testers.dart';
export 'mocks.dart'; export 'mocks.dart';
export 'navigator.dart';
export 'pump_app.dart'; export 'pump_app.dart';

@ -0,0 +1,27 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'helpers.dart';
Future<void> expectNavigatesTo<Type>(WidgetTester tester, Route route) async {
// ignore: avoid_dynamic_calls
await tester.pumpApp(
Scaffold(
body: Builder(
builder: (context) {
return ElevatedButton(
onPressed: () {
Navigator.of(context).push<void>(route);
},
child: const Text('Tap me'),
);
},
),
),
);
await tester.tap(find.text('Tap me'));
await tester.pumpAndSettle();
expect(find.byType(Type), findsOneWidget);
}

@ -23,29 +23,12 @@ void main() {
}); });
testWidgets('route returns a valid navigation route', (tester) async { testWidgets('route returns a valid navigation route', (tester) async {
await tester.pumpApp( await expectNavigatesTo<LeaderboardPage>(
Scaffold( tester,
body: Builder( LeaderboardPage.route(
builder: (context) { theme: DashTheme(),
return ElevatedButton(
onPressed: () {
Navigator.of(context).push<void>(
LeaderboardPage.route(
theme: DashTheme(),
),
);
},
child: const Text('Tap me'),
);
},
),
), ),
); );
await tester.tap(find.text('Tap me'));
await tester.pumpAndSettle();
expect(find.byType(LeaderboardPage), findsOneWidget);
}); });
}); });

Loading…
Cancel
Save