@@ -61,28 +61,59 @@ void main() {
6161
6262 final Finder homeScreenFinder = find.byType (HomeScreen );
6363
64+ expect (homeScreenFinder, findsNothing);
65+
6466 showHomeValueNotifier.value = true ;
67+
6568 await tester.pump ();
66- final Offset homeScreenPositionInTheMiddleOfAddition =
67- tester.getTopLeft (homeScreenFinder);
69+
70+ expect (homeScreenFinder, findsOneWidget);
71+
6872 await tester.pumpAndSettle ();
69- final Offset homeScreenPositionAfterAddition =
70- tester.getTopLeft (homeScreenFinder);
7173
7274 showHomeValueNotifier.value = false ;
75+
7376 await tester.pump ();
74- final Offset homeScreenPositionInTheMiddleOfRemoval =
75- tester.getTopLeft (homeScreenFinder);
77+
78+ expect (homeScreenFinder, findsNothing);
79+
7680 await tester.pumpAndSettle ();
81+ });
7782
78- expect (
79- homeScreenPositionInTheMiddleOfAddition,
80- homeScreenPositionAfterAddition,
81- );
82- expect (
83- homeScreenPositionAfterAddition,
84- homeScreenPositionInTheMiddleOfRemoval,
83+ testWidgets ('NoTransitionPage does not apply any reverse transition' ,
84+ (WidgetTester tester) async {
85+ final ValueNotifier <bool > showHomeValueNotifier = ValueNotifier <bool >(true );
86+ await tester.pumpWidget (
87+ MaterialApp (
88+ home: ValueListenableBuilder <bool >(
89+ valueListenable: showHomeValueNotifier,
90+ builder: (_, bool showHome, __) {
91+ return Navigator (
92+ pages: < Page <void >> [
93+ const NoTransitionPage <void >(
94+ child: LoginScreen (),
95+ ),
96+ if (showHome)
97+ const NoTransitionPage <void >(
98+ child: HomeScreen (),
99+ ),
100+ ],
101+ onPopPage: (Route <dynamic > route, dynamic result) {
102+ return route.didPop (result);
103+ },
104+ );
105+ },
106+ ),
107+ ),
85108 );
109+
110+ final Finder homeScreenFinder = find.byType (HomeScreen );
111+
112+ showHomeValueNotifier.value = false ;
113+
114+ await tester.pump ();
115+
116+ expect (homeScreenFinder, findsNothing);
86117 });
87118
88119 testWidgets ('Dismiss a screen by tapping a modal barrier' ,
0 commit comments