Volodymyr Buberenko

Update Get.offNamedUntil tests

@@ -6,9 +6,7 @@ import 'utils/wrapper.dart'; @@ -6,9 +6,7 @@ import 'utils/wrapper.dart';
6 6
7 void main() { 7 void main() {
8 testWidgets("Get.to navigates to provided route", (tester) async { 8 testWidgets("Get.to navigates to provided route", (tester) async {
9 - await tester.pumpWidget(  
10 - Wrapper(child: Container()),  
11 - ); 9 + await tester.pumpWidget(Wrapper(child: Container()));
12 10
13 Get.to(FirstScreen()); 11 Get.to(FirstScreen());
14 12
@@ -18,16 +16,14 @@ void main() { @@ -18,16 +16,14 @@ void main() {
18 }); 16 });
19 17
20 testWidgets("Get.toNamed navigates to provided named route", (tester) async { 18 testWidgets("Get.toNamed navigates to provided named route", (tester) async {
21 - await tester.pumpWidget(  
22 - GetMaterialApp( 19 + await tester.pumpWidget(GetMaterialApp(
23 initialRoute: '/first', 20 initialRoute: '/first',
24 getPages: [ 21 getPages: [
25 GetPage(page: () => FirstScreen(), name: '/first'), 22 GetPage(page: () => FirstScreen(), name: '/first'),
26 GetPage(page: () => SecondScreen(), name: '/second'), 23 GetPage(page: () => SecondScreen(), name: '/second'),
27 GetPage(page: () => ThirdScreen(), name: '/third') 24 GetPage(page: () => ThirdScreen(), name: '/third')
28 ], 25 ],
29 - ),  
30 - ); 26 + ));
31 27
32 Get.toNamed('/second'); 28 Get.toNamed('/second');
33 29
@@ -37,9 +33,7 @@ void main() { @@ -37,9 +33,7 @@ void main() {
37 }); 33 });
38 34
39 testWidgets("Get.off navigates to provided route", (tester) async { 35 testWidgets("Get.off navigates to provided route", (tester) async {
40 - await tester.pumpWidget(  
41 - Wrapper(child: FirstScreen()),  
42 - ); 36 + await tester.pumpWidget(Wrapper(child: FirstScreen()));
43 37
44 Get.off(SecondScreen()); 38 Get.off(SecondScreen());
45 39
@@ -49,9 +43,7 @@ void main() { @@ -49,9 +43,7 @@ void main() {
49 }); 43 });
50 44
51 testWidgets("Get.off removes current route", (tester) async { 45 testWidgets("Get.off removes current route", (tester) async {
52 - await tester.pumpWidget(  
53 - Wrapper(child: FirstScreen()),  
54 - ); 46 + await tester.pumpWidget(Wrapper(child: FirstScreen()));
55 47
56 Get.off(SecondScreen()); 48 Get.off(SecondScreen());
57 Get.back(); 49 Get.back();
@@ -62,16 +54,14 @@ void main() { @@ -62,16 +54,14 @@ void main() {
62 }); 54 });
63 55
64 testWidgets("Get.offNamed navigates to provided named route", (tester) async { 56 testWidgets("Get.offNamed navigates to provided named route", (tester) async {
65 - await tester.pumpWidget(  
66 - GetMaterialApp( 57 + await tester.pumpWidget(GetMaterialApp(
67 initialRoute: '/first', 58 initialRoute: '/first',
68 getPages: [ 59 getPages: [
69 GetPage(name: '/first', page: () => FirstScreen()), 60 GetPage(name: '/first', page: () => FirstScreen()),
70 GetPage(name: '/second', page: () => SecondScreen()), 61 GetPage(name: '/second', page: () => SecondScreen()),
71 GetPage(name: '/third', page: () => ThirdScreen()), 62 GetPage(name: '/third', page: () => ThirdScreen()),
72 ], 63 ],
73 - ),  
74 - ); 64 + ));
75 65
76 Get.offNamed('/second'); 66 Get.offNamed('/second');
77 67
@@ -81,16 +71,14 @@ void main() { @@ -81,16 +71,14 @@ void main() {
81 }); 71 });
82 72
83 testWidgets("Get.offNamed removes current route", (tester) async { 73 testWidgets("Get.offNamed removes current route", (tester) async {
84 - await tester.pumpWidget(  
85 - GetMaterialApp( 74 + await tester.pumpWidget(GetMaterialApp(
86 initialRoute: '/first', 75 initialRoute: '/first',
87 getPages: [ 76 getPages: [
88 GetPage(name: '/first', page: () => FirstScreen()), 77 GetPage(name: '/first', page: () => FirstScreen()),
89 GetPage(name: '/second', page: () => SecondScreen()), 78 GetPage(name: '/second', page: () => SecondScreen()),
90 GetPage(name: '/third', page: () => ThirdScreen()), 79 GetPage(name: '/third', page: () => ThirdScreen()),
91 ], 80 ],
92 - ),  
93 - ); 81 + ));
94 82
95 Get.offNamed('/second'); 83 Get.offNamed('/second');
96 Get.back(); 84 Get.back();
@@ -101,16 +89,14 @@ void main() { @@ -101,16 +89,14 @@ void main() {
101 }); 89 });
102 90
103 testWidgets("Get.offNamed removes only current route", (tester) async { 91 testWidgets("Get.offNamed removes only current route", (tester) async {
104 - await tester.pumpWidget(  
105 - GetMaterialApp( 92 + await tester.pumpWidget(GetMaterialApp(
106 initialRoute: '/first', 93 initialRoute: '/first',
107 getPages: [ 94 getPages: [
108 GetPage(name: '/first', page: () => FirstScreen()), 95 GetPage(name: '/first', page: () => FirstScreen()),
109 GetPage(name: '/second', page: () => SecondScreen()), 96 GetPage(name: '/second', page: () => SecondScreen()),
110 GetPage(name: '/third', page: () => ThirdScreen()), 97 GetPage(name: '/third', page: () => ThirdScreen()),
111 ], 98 ],
112 - ),  
113 - ); 99 + ));
114 100
115 Get.toNamed('/second'); 101 Get.toNamed('/second');
116 Get.offNamed('/third'); 102 Get.offNamed('/third');
@@ -122,9 +108,7 @@ void main() { @@ -122,9 +108,7 @@ void main() {
122 }); 108 });
123 109
124 testWidgets("Get.offAll navigates to provided route", (tester) async { 110 testWidgets("Get.offAll navigates to provided route", (tester) async {
125 - await tester.pumpWidget(  
126 - Wrapper(child: FirstScreen()),  
127 - ); 111 + await tester.pumpWidget(Wrapper(child: FirstScreen()));
128 112
129 Get.offAll(SecondScreen()); 113 Get.offAll(SecondScreen());
130 114
@@ -134,9 +118,7 @@ void main() { @@ -134,9 +118,7 @@ void main() {
134 }); 118 });
135 119
136 testWidgets("Get.offAll removes all previous routes", (tester) async { 120 testWidgets("Get.offAll removes all previous routes", (tester) async {
137 - await tester.pumpWidget(  
138 - Wrapper(child: FirstScreen()),  
139 - ); 121 + await tester.pumpWidget(Wrapper(child: FirstScreen()));
140 122
141 Get.to(SecondScreen()); 123 Get.to(SecondScreen());
142 Get.offAll(ThirdScreen()); 124 Get.offAll(ThirdScreen());
@@ -155,16 +137,14 @@ void main() { @@ -155,16 +137,14 @@ void main() {
155 137
156 testWidgets("Get.offAllNamed navigates to provided named route", 138 testWidgets("Get.offAllNamed navigates to provided named route",
157 (tester) async { 139 (tester) async {
158 - await tester.pumpWidget(  
159 - WrapperNamed( 140 + await tester.pumpWidget(WrapperNamed(
160 initialRoute: '/first', 141 initialRoute: '/first',
161 namedRoutes: [ 142 namedRoutes: [
162 GetPage(page: () => FirstScreen(), name: '/first'), 143 GetPage(page: () => FirstScreen(), name: '/first'),
163 GetPage(page: () => SecondScreen(), name: '/second'), 144 GetPage(page: () => SecondScreen(), name: '/second'),
164 GetPage(page: () => ThirdScreen(), name: '/third') 145 GetPage(page: () => ThirdScreen(), name: '/third')
165 ], 146 ],
166 - ),  
167 - ); 147 + ));
168 148
169 Get.toNamed('/second'); 149 Get.toNamed('/second');
170 150
@@ -174,16 +154,14 @@ void main() { @@ -174,16 +154,14 @@ void main() {
174 }); 154 });
175 155
176 testWidgets("Get.offAllNamed removes all previous routes", (tester) async { 156 testWidgets("Get.offAllNamed removes all previous routes", (tester) async {
177 - await tester.pumpWidget(  
178 - WrapperNamed( 157 + await tester.pumpWidget(WrapperNamed(
179 initialRoute: '/first', 158 initialRoute: '/first',
180 namedRoutes: [ 159 namedRoutes: [
181 GetPage(page: () => FirstScreen(), name: '/first'), 160 GetPage(page: () => FirstScreen(), name: '/first'),
182 GetPage(page: () => SecondScreen(), name: '/second'), 161 GetPage(page: () => SecondScreen(), name: '/second'),
183 GetPage(page: () => ThirdScreen(), name: '/third') 162 GetPage(page: () => ThirdScreen(), name: '/third')
184 ], 163 ],
185 - ),  
186 - ); 164 + ));
187 165
188 Get.toNamed('/second'); 166 Get.toNamed('/second');
189 Get.offAllNamed('/third'); 167 Get.offAllNamed('/third');
@@ -201,16 +179,14 @@ void main() { @@ -201,16 +179,14 @@ void main() {
201 }); 179 });
202 180
203 testWidgets("Get.offAndToNamed navigates to provided route", (tester) async { 181 testWidgets("Get.offAndToNamed navigates to provided route", (tester) async {
204 - await tester.pumpWidget(  
205 - WrapperNamed( 182 + await tester.pumpWidget(WrapperNamed(
206 initialRoute: '/first', 183 initialRoute: '/first',
207 namedRoutes: [ 184 namedRoutes: [
208 GetPage(page: () => FirstScreen(), name: '/first'), 185 GetPage(page: () => FirstScreen(), name: '/first'),
209 GetPage(page: () => SecondScreen(), name: '/second'), 186 GetPage(page: () => SecondScreen(), name: '/second'),
210 GetPage(page: () => ThirdScreen(), name: '/third') 187 GetPage(page: () => ThirdScreen(), name: '/third')
211 ], 188 ],
212 - ),  
213 - ); 189 + ));
214 190
215 Get.offAndToNamed('/second'); 191 Get.offAndToNamed('/second');
216 192
@@ -220,16 +196,14 @@ void main() { @@ -220,16 +196,14 @@ void main() {
220 }); 196 });
221 197
222 testWidgets("Get.offAndToNamed removes previous route", (tester) async { 198 testWidgets("Get.offAndToNamed removes previous route", (tester) async {
223 - await tester.pumpWidget(  
224 - WrapperNamed( 199 + await tester.pumpWidget(WrapperNamed(
225 initialRoute: '/first', 200 initialRoute: '/first',
226 namedRoutes: [ 201 namedRoutes: [
227 GetPage(page: () => FirstScreen(), name: '/first'), 202 GetPage(page: () => FirstScreen(), name: '/first'),
228 GetPage(page: () => SecondScreen(), name: '/second'), 203 GetPage(page: () => SecondScreen(), name: '/second'),
229 GetPage(page: () => ThirdScreen(), name: '/third') 204 GetPage(page: () => ThirdScreen(), name: '/third')
230 ], 205 ],
231 - ),  
232 - ); 206 + ));
233 207
234 Get.offAndToNamed('/second'); 208 Get.offAndToNamed('/second');
235 Get.back(); 209 Get.back();
@@ -240,11 +214,7 @@ void main() { @@ -240,11 +214,7 @@ void main() {
240 }); 214 });
241 215
242 testWidgets("Get.offUntil navigates to provided route", (tester) async { 216 testWidgets("Get.offUntil navigates to provided route", (tester) async {
243 - await tester.pumpWidget(  
244 - Wrapper(  
245 - child: FirstScreen(),  
246 - ),  
247 - ); 217 + await tester.pumpWidget(Wrapper(child: FirstScreen()));
248 218
249 Get.offUntil(GetPageRoute(page: () => ThirdScreen()), 219 Get.offUntil(GetPageRoute(page: () => ThirdScreen()),
250 (route) => (route as GetPageRoute).routeName == '/FirstScreen'); 220 (route) => (route as GetPageRoute).routeName == '/FirstScreen');
@@ -257,13 +227,8 @@ void main() { @@ -257,13 +227,8 @@ void main() {
257 testWidgets( 227 testWidgets(
258 "Get.offUntil removes previous routes if they don't match predicate", 228 "Get.offUntil removes previous routes if they don't match predicate",
259 (tester) async { 229 (tester) async {
260 - await tester.pumpWidget(  
261 - Wrapper(  
262 - child: Container(),  
263 - ),  
264 - ); 230 + await tester.pumpWidget(Wrapper(child: FirstScreen()));
265 231
266 - Get.to(FirstScreen());  
267 Get.to(SecondScreen()); 232 Get.to(SecondScreen());
268 Get.offUntil(GetPageRoute(page: () => ThirdScreen()), 233 Get.offUntil(GetPageRoute(page: () => ThirdScreen()),
269 (route) => (route as GetPageRoute).routeName == '/FirstScreen'); 234 (route) => (route as GetPageRoute).routeName == '/FirstScreen');
@@ -277,11 +242,7 @@ void main() { @@ -277,11 +242,7 @@ void main() {
277 testWidgets( 242 testWidgets(
278 "Get.offUntil leaves previous routes that match provided predicate", 243 "Get.offUntil leaves previous routes that match provided predicate",
279 (tester) async { 244 (tester) async {
280 - await tester.pumpWidget(  
281 - Wrapper(  
282 - child: Container(),  
283 - ),  
284 - ); 245 + await tester.pumpWidget(Wrapper(child: Container()));
285 246
286 Get.to(FirstScreen()); 247 Get.to(FirstScreen());
287 Get.to(SecondScreen()); 248 Get.to(SecondScreen());
@@ -294,40 +255,57 @@ void main() { @@ -294,40 +255,57 @@ void main() {
294 expect(find.byType(FirstScreen), findsOneWidget); 255 expect(find.byType(FirstScreen), findsOneWidget);
295 }); 256 });
296 257
297 - testWidgets("Get.offNamedUntil smoke test", (tester) async {  
298 - await tester.pumpWidget(  
299 - WrapperNamed(  
300 - initialRoute: '/', 258 + testWidgets("Get.offNamedUntil navigates to provided route", (tester) async {
  259 + await tester.pumpWidget(WrapperNamed(
  260 + initialRoute: '/first',
301 namedRoutes: [ 261 namedRoutes: [
302 - GetPage(  
303 - page: () => Container(),  
304 - name: '/',  
305 - popGesture: true,  
306 - transition: Transition.cupertino),  
307 - GetPage(  
308 - page: () => FirstScreen(),  
309 - name: '/first',  
310 - transition: Transition.size),  
311 - GetPage(  
312 - page: () => SecondScreen(), name: '/second', transition: null),  
313 - GetPage(page: () => ThirdScreen(), name: '/third'), 262 + GetPage(page: () => FirstScreen(), name: '/first'),
  263 + GetPage(page: () => SecondScreen(), name: '/second'),
  264 + GetPage(page: () => ThirdScreen(), name: '/third')
314 ], 265 ],
315 - ),  
316 - ); 266 + ));
317 267
318 - Get.toNamed('/first');  
319 - Get.toNamed('/second'); 268 + Get.offNamedUntil('/second', ModalRoute.withName('/first'));
320 269
321 await tester.pumpAndSettle(); 270 await tester.pumpAndSettle();
322 271
323 expect(find.byType(SecondScreen), findsOneWidget); 272 expect(find.byType(SecondScreen), findsOneWidget);
  273 + });
  274 +
  275 + testWidgets(
  276 + "Get.offNamedUntil removes previous routes if they don't match predicate",
  277 + (tester) async {
  278 + await tester.pumpWidget(WrapperNamed(
  279 + initialRoute: '/first',
  280 + namedRoutes: [
  281 + GetPage(page: () => FirstScreen(), name: '/first'),
  282 + GetPage(page: () => SecondScreen(), name: '/second'),
  283 + GetPage(page: () => ThirdScreen(), name: '/third')
  284 + ],
  285 + ));
324 286
  287 + Get.toNamed('/second');
325 Get.offNamedUntil('/third', ModalRoute.withName('/first')); 288 Get.offNamedUntil('/third', ModalRoute.withName('/first'));
326 289
327 await tester.pumpAndSettle(); 290 await tester.pumpAndSettle();
328 291
329 - expect(find.byType(ThirdScreen), findsOneWidget); 292 + expect(find.byType(SecondScreen), findsNothing);
  293 + });
  294 +
  295 + testWidgets(
  296 + "Get.offNamedUntil leaves previous routes that match provided predicate",
  297 + (tester) async {
  298 + await tester.pumpWidget(WrapperNamed(
  299 + initialRoute: '/first',
  300 + namedRoutes: [
  301 + GetPage(page: () => FirstScreen(), name: '/first'),
  302 + GetPage(page: () => SecondScreen(), name: '/second'),
  303 + GetPage(page: () => ThirdScreen(), name: '/third'),
  304 + ],
  305 + ));
330 306
  307 + Get.toNamed('/second');
  308 + Get.offNamedUntil('/third', ModalRoute.withName('/first'));
331 Get.back(); 309 Get.back();
332 310
333 await tester.pumpAndSettle(); 311 await tester.pumpAndSettle();
@@ -348,11 +326,10 @@ void main() { @@ -348,11 +326,10 @@ void main() {
348 expect(find.byType(FirstScreen), findsOneWidget); 326 expect(find.byType(FirstScreen), findsOneWidget);
349 }); 327 });
350 328
351 - testWidgets("Get.back closeOverlays closes both snackbar and current route", 329 + testWidgets(
  330 + "Get.back with closeOverlays pops both snackbar and current route",
352 (tester) async { 331 (tester) async {
353 - await tester.pumpWidget(  
354 - Wrapper(child: FirstScreen()),  
355 - ); 332 + await tester.pumpWidget(Wrapper(child: FirstScreen()));
356 333
357 Get.to(SecondScreen()); 334 Get.to(SecondScreen());
358 Get.snackbar('title', "message"); 335 Get.snackbar('title', "message");