Volodymyr Buberenko

Update tests, fix predicate for offNamedUntil

... ... @@ -618,7 +618,7 @@ extension GetNavigation on GetInterface {
/// as explained in documentation
///
/// [predicate] can be used like this:
/// `Get.offNamedUntil(page, (route) => (route as GetPageRoute).routeName == '/home')`
/// `Get.offNamedUntil(page, ModalRoute.withName('/home'))`
/// to pop routes in stack until home,
/// or like this:
/// `Get.offNamedUntil((route) => !Get.isDialogOpen())`,
... ...
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get/get.dart';
import 'utils/wrapper.dart';
class SizeTransitions extends CustomTransition {
... ... @@ -198,16 +199,21 @@ void main() {
await tester.pumpAndSettle();
expect(find.byType(FirstScreen), findsOneWidget);
Get.to(SecondScreen());
Get.offUntil(
MaterialPageRoute(builder: (context) => SecondScreen()),
ModalRoute.withName('/'),
);
await tester.pumpAndSettle();
Get.offUntil(GetPageRoute(page: () => ThirdScreen()),
(route) => (route as GetPageRoute).routeName == '/FirstScreen');
await tester.pumpAndSettle();
expect(find.byType(SecondScreen), findsOneWidget);
expect(find.byType(ThirdScreen), findsOneWidget);
Get.back();
await tester.pumpAndSettle();
expect(find.byType(FirstScreen), findsOneWidget);
});
testWidgets("Get.offNamedUntil smoke test", (tester) async {
... ... @@ -232,12 +238,19 @@ void main() {
);
Get.toNamed('/first');
Get.toNamed('/second');
await tester.pumpAndSettle();
expect(find.byType(FirstScreen), findsOneWidget);
expect(find.byType(SecondScreen), findsOneWidget);
Get.offNamedUntil('/third', ModalRoute.withName('/first'));
Get.offNamedUntil('/first', ModalRoute.withName('/'));
await tester.pumpAndSettle();
expect(find.byType(ThirdScreen), findsOneWidget);
Get.back();
await tester.pumpAndSettle();
... ...