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(  
23 - initialRoute: '/first',  
24 - getPages: [  
25 - GetPage(page: () => FirstScreen(), name: '/first'),  
26 - GetPage(page: () => SecondScreen(), name: '/second'),  
27 - GetPage(page: () => ThirdScreen(), name: '/third')  
28 - ],  
29 - ),  
30 - ); 19 + await tester.pumpWidget(GetMaterialApp(
  20 + initialRoute: '/first',
  21 + getPages: [
  22 + GetPage(page: () => FirstScreen(), name: '/first'),
  23 + GetPage(page: () => SecondScreen(), name: '/second'),
  24 + GetPage(page: () => ThirdScreen(), name: '/third')
  25 + ],
  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(  
67 - initialRoute: '/first',  
68 - getPages: [  
69 - GetPage(name: '/first', page: () => FirstScreen()),  
70 - GetPage(name: '/second', page: () => SecondScreen()),  
71 - GetPage(name: '/third', page: () => ThirdScreen()),  
72 - ],  
73 - ),  
74 - ); 57 + await tester.pumpWidget(GetMaterialApp(
  58 + initialRoute: '/first',
  59 + getPages: [
  60 + GetPage(name: '/first', page: () => FirstScreen()),
  61 + GetPage(name: '/second', page: () => SecondScreen()),
  62 + GetPage(name: '/third', page: () => ThirdScreen()),
  63 + ],
  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(  
86 - initialRoute: '/first',  
87 - getPages: [  
88 - GetPage(name: '/first', page: () => FirstScreen()),  
89 - GetPage(name: '/second', page: () => SecondScreen()),  
90 - GetPage(name: '/third', page: () => ThirdScreen()),  
91 - ],  
92 - ),  
93 - ); 74 + await tester.pumpWidget(GetMaterialApp(
  75 + initialRoute: '/first',
  76 + getPages: [
  77 + GetPage(name: '/first', page: () => FirstScreen()),
  78 + GetPage(name: '/second', page: () => SecondScreen()),
  79 + GetPage(name: '/third', page: () => ThirdScreen()),
  80 + ],
  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(  
106 - initialRoute: '/first',  
107 - getPages: [  
108 - GetPage(name: '/first', page: () => FirstScreen()),  
109 - GetPage(name: '/second', page: () => SecondScreen()),  
110 - GetPage(name: '/third', page: () => ThirdScreen()),  
111 - ],  
112 - ),  
113 - ); 92 + await tester.pumpWidget(GetMaterialApp(
  93 + initialRoute: '/first',
  94 + getPages: [
  95 + GetPage(name: '/first', page: () => FirstScreen()),
  96 + GetPage(name: '/second', page: () => SecondScreen()),
  97 + GetPage(name: '/third', page: () => ThirdScreen()),
  98 + ],
  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(  
160 - initialRoute: '/first',  
161 - namedRoutes: [  
162 - GetPage(page: () => FirstScreen(), name: '/first'),  
163 - GetPage(page: () => SecondScreen(), name: '/second'),  
164 - GetPage(page: () => ThirdScreen(), name: '/third')  
165 - ],  
166 - ),  
167 - ); 140 + await tester.pumpWidget(WrapperNamed(
  141 + initialRoute: '/first',
  142 + namedRoutes: [
  143 + GetPage(page: () => FirstScreen(), name: '/first'),
  144 + GetPage(page: () => SecondScreen(), name: '/second'),
  145 + GetPage(page: () => ThirdScreen(), name: '/third')
  146 + ],
  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(  
179 - initialRoute: '/first',  
180 - namedRoutes: [  
181 - GetPage(page: () => FirstScreen(), name: '/first'),  
182 - GetPage(page: () => SecondScreen(), name: '/second'),  
183 - GetPage(page: () => ThirdScreen(), name: '/third')  
184 - ],  
185 - ),  
186 - ); 157 + await tester.pumpWidget(WrapperNamed(
  158 + initialRoute: '/first',
  159 + namedRoutes: [
  160 + GetPage(page: () => FirstScreen(), name: '/first'),
  161 + GetPage(page: () => SecondScreen(), name: '/second'),
  162 + GetPage(page: () => ThirdScreen(), name: '/third')
  163 + ],
  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(  
206 - initialRoute: '/first',  
207 - namedRoutes: [  
208 - GetPage(page: () => FirstScreen(), name: '/first'),  
209 - GetPage(page: () => SecondScreen(), name: '/second'),  
210 - GetPage(page: () => ThirdScreen(), name: '/third')  
211 - ],  
212 - ),  
213 - ); 182 + await tester.pumpWidget(WrapperNamed(
  183 + initialRoute: '/first',
  184 + namedRoutes: [
  185 + GetPage(page: () => FirstScreen(), name: '/first'),
  186 + GetPage(page: () => SecondScreen(), name: '/second'),
  187 + GetPage(page: () => ThirdScreen(), name: '/third')
  188 + ],
  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(  
225 - initialRoute: '/first',  
226 - namedRoutes: [  
227 - GetPage(page: () => FirstScreen(), name: '/first'),  
228 - GetPage(page: () => SecondScreen(), name: '/second'),  
229 - GetPage(page: () => ThirdScreen(), name: '/third')  
230 - ],  
231 - ),  
232 - ); 199 + await tester.pumpWidget(WrapperNamed(
  200 + initialRoute: '/first',
  201 + namedRoutes: [
  202 + GetPage(page: () => FirstScreen(), name: '/first'),
  203 + GetPage(page: () => SecondScreen(), name: '/second'),
  204 + GetPage(page: () => ThirdScreen(), name: '/third')
  205 + ],
  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: '/',  
301 - 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'),  
314 - ],  
315 - ),  
316 - ); 258 + testWidgets("Get.offNamedUntil navigates to provided route", (tester) async {
  259 + await tester.pumpWidget(WrapperNamed(
  260 + initialRoute: '/first',
  261 + namedRoutes: [
  262 + GetPage(page: () => FirstScreen(), name: '/first'),
  263 + GetPage(page: () => SecondScreen(), name: '/second'),
  264 + GetPage(page: () => ThirdScreen(), name: '/third')
  265 + ],
  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 + });
330 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 + ));
  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");