Volodymyr Buberenko

Update more tests

@@ -20,9 +20,9 @@ void main() { @@ -20,9 +20,9 @@ void main() {
20 testWidgets("Get.toNamed navigates to provided named route", (tester) async { 20 testWidgets("Get.toNamed navigates to provided named route", (tester) async {
21 await tester.pumpWidget( 21 await tester.pumpWidget(
22 GetMaterialApp( 22 GetMaterialApp(
23 - initialRoute: '/', 23 + initialRoute: '/first',
24 getPages: [ 24 getPages: [
25 - GetPage(page: () => FirstScreen(), name: '/'), 25 + GetPage(page: () => FirstScreen(), name: '/first'),
26 GetPage(page: () => SecondScreen(), name: '/second'), 26 GetPage(page: () => SecondScreen(), name: '/second'),
27 GetPage(page: () => ThirdScreen(), name: '/third') 27 GetPage(page: () => ThirdScreen(), name: '/third')
28 ], 28 ],
@@ -38,10 +38,9 @@ void main() { @@ -38,10 +38,9 @@ void main() {
38 38
39 testWidgets("Get.off navigates to provided route", (tester) async { 39 testWidgets("Get.off navigates to provided route", (tester) async {
40 await tester.pumpWidget( 40 await tester.pumpWidget(
41 - Wrapper(child: Container()), 41 + Wrapper(child: FirstScreen()),
42 ); 42 );
43 43
44 - Get.to(FirstScreen());  
45 Get.off(SecondScreen()); 44 Get.off(SecondScreen());
46 45
47 await tester.pumpAndSettle(); 46 await tester.pumpAndSettle();
@@ -51,10 +50,9 @@ void main() { @@ -51,10 +50,9 @@ void main() {
51 50
52 testWidgets("Get.off removes current route", (tester) async { 51 testWidgets("Get.off removes current route", (tester) async {
53 await tester.pumpWidget( 52 await tester.pumpWidget(
54 - Wrapper(child: Container()), 53 + Wrapper(child: FirstScreen()),
55 ); 54 );
56 55
57 - Get.to(FirstScreen());  
58 Get.off(SecondScreen()); 56 Get.off(SecondScreen());
59 Get.back(); 57 Get.back();
60 58
@@ -66,9 +64,8 @@ void main() { @@ -66,9 +64,8 @@ void main() {
66 testWidgets("Get.offNamed navigates to provided named route", (tester) async { 64 testWidgets("Get.offNamed navigates to provided named route", (tester) async {
67 await tester.pumpWidget( 65 await tester.pumpWidget(
68 GetMaterialApp( 66 GetMaterialApp(
69 - initialRoute: '/', 67 + initialRoute: '/first',
70 getPages: [ 68 getPages: [
71 - GetPage(name: '/', page: () => Container()),  
72 GetPage(name: '/first', page: () => FirstScreen()), 69 GetPage(name: '/first', page: () => FirstScreen()),
73 GetPage(name: '/second', page: () => SecondScreen()), 70 GetPage(name: '/second', page: () => SecondScreen()),
74 GetPage(name: '/third', page: () => ThirdScreen()), 71 GetPage(name: '/third', page: () => ThirdScreen()),
@@ -76,19 +73,18 @@ void main() { @@ -76,19 +73,18 @@ void main() {
76 ), 73 ),
77 ); 74 );
78 75
79 - Get.offNamed('/first'); 76 + Get.offNamed('/second');
80 77
81 await tester.pumpAndSettle(); 78 await tester.pumpAndSettle();
82 79
83 - expect(find.byType(FirstScreen), findsOneWidget); 80 + expect(find.byType(SecondScreen), findsOneWidget);
84 }); 81 });
85 82
86 testWidgets("Get.offNamed removes current route", (tester) async { 83 testWidgets("Get.offNamed removes current route", (tester) async {
87 await tester.pumpWidget( 84 await tester.pumpWidget(
88 GetMaterialApp( 85 GetMaterialApp(
89 - initialRoute: '/', 86 + initialRoute: '/first',
90 getPages: [ 87 getPages: [
91 - GetPage(name: '/', page: () => Container()),  
92 GetPage(name: '/first', page: () => FirstScreen()), 88 GetPage(name: '/first', page: () => FirstScreen()),
93 GetPage(name: '/second', page: () => SecondScreen()), 89 GetPage(name: '/second', page: () => SecondScreen()),
94 GetPage(name: '/third', page: () => ThirdScreen()), 90 GetPage(name: '/third', page: () => ThirdScreen()),
@@ -96,7 +92,6 @@ void main() { @@ -96,7 +92,6 @@ void main() {
96 ), 92 ),
97 ); 93 );
98 94
99 - Get.toNamed('/first');  
100 Get.offNamed('/second'); 95 Get.offNamed('/second');
101 Get.back(); 96 Get.back();
102 97
@@ -108,9 +103,8 @@ void main() { @@ -108,9 +103,8 @@ void main() {
108 testWidgets("Get.offNamed removes only current route", (tester) async { 103 testWidgets("Get.offNamed removes only current route", (tester) async {
109 await tester.pumpWidget( 104 await tester.pumpWidget(
110 GetMaterialApp( 105 GetMaterialApp(
111 - initialRoute: '/', 106 + initialRoute: '/first',
112 getPages: [ 107 getPages: [
113 - GetPage(name: '/', page: () => Container()),  
114 GetPage(name: '/first', page: () => FirstScreen()), 108 GetPage(name: '/first', page: () => FirstScreen()),
115 GetPage(name: '/second', page: () => SecondScreen()), 109 GetPage(name: '/second', page: () => SecondScreen()),
116 GetPage(name: '/third', page: () => ThirdScreen()), 110 GetPage(name: '/third', page: () => ThirdScreen()),
@@ -118,33 +112,32 @@ void main() { @@ -118,33 +112,32 @@ void main() {
118 ), 112 ),
119 ); 113 );
120 114
121 - Get.toNamed('/first');  
122 - Get.offNamed('/second'); 115 + Get.toNamed('/second');
  116 + Get.offNamed('/third');
123 Get.back(); 117 Get.back();
124 118
125 await tester.pumpAndSettle(); 119 await tester.pumpAndSettle();
126 120
127 - expect(find.byType(Container), findsOneWidget); 121 + expect(find.byType(FirstScreen), findsOneWidget);
128 }); 122 });
129 123
130 testWidgets("Get.offAll navigates to provided route", (tester) async { 124 testWidgets("Get.offAll navigates to provided route", (tester) async {
131 await tester.pumpWidget( 125 await tester.pumpWidget(
132 - Wrapper(child: Container()), 126 + Wrapper(child: FirstScreen()),
133 ); 127 );
134 128
135 - Get.offAll(FirstScreen()); 129 + Get.offAll(SecondScreen());
136 130
137 await tester.pumpAndSettle(); 131 await tester.pumpAndSettle();
138 132
139 - expect(find.byType(FirstScreen), findsOneWidget); 133 + expect(find.byType(SecondScreen), findsOneWidget);
140 }); 134 });
141 135
142 testWidgets("Get.offAll removes all previous routes", (tester) async { 136 testWidgets("Get.offAll removes all previous routes", (tester) async {
143 await tester.pumpWidget( 137 await tester.pumpWidget(
144 - Wrapper(child: Container()), 138 + Wrapper(child: FirstScreen()),
145 ); 139 );
146 140
147 - Get.to(FirstScreen());  
148 Get.to(SecondScreen()); 141 Get.to(SecondScreen());
149 Get.offAll(ThirdScreen()); 142 Get.offAll(ThirdScreen());
150 Get.back(); 143 Get.back();
@@ -207,53 +200,93 @@ void main() { @@ -207,53 +200,93 @@ void main() {
207 expect(find.byType(FirstScreen), findsNothing); 200 expect(find.byType(FirstScreen), findsNothing);
208 }); 201 });
209 202
210 - testWidgets("Get.offAndToNamed smoke test", (tester) async { 203 + testWidgets("Get.offAndToNamed navigates to provided route", (tester) async {
211 await tester.pumpWidget( 204 await tester.pumpWidget(
212 WrapperNamed( 205 WrapperNamed(
213 - initialRoute: '/', 206 + initialRoute: '/first',
214 namedRoutes: [ 207 namedRoutes: [
215 - GetPage(page: () => Container(), name: '/'),  
216 GetPage(page: () => FirstScreen(), name: '/first'), 208 GetPage(page: () => FirstScreen(), name: '/first'),
217 GetPage(page: () => SecondScreen(), name: '/second'), 209 GetPage(page: () => SecondScreen(), name: '/second'),
218 - GetPage(page: () => ThirdScreen(), name: '/third'), 210 + GetPage(page: () => ThirdScreen(), name: '/third')
219 ], 211 ],
220 ), 212 ),
221 ); 213 );
222 214
223 - Get.toNamed('/first'); 215 + Get.offAndToNamed('/second');
224 216
225 await tester.pumpAndSettle(); 217 await tester.pumpAndSettle();
226 218
227 - expect(find.byType(FirstScreen), findsOneWidget); 219 + expect(find.byType(SecondScreen), findsOneWidget);
  220 + });
  221 +
  222 + 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 + );
228 233
229 Get.offAndToNamed('/second'); 234 Get.offAndToNamed('/second');
  235 + Get.back();
230 236
231 await tester.pumpAndSettle(); 237 await tester.pumpAndSettle();
232 238
233 - expect(find.byType(SecondScreen), findsOneWidget); 239 + expect(find.byType(FirstScreen), findsNothing);
234 }); 240 });
235 241
236 - testWidgets("Get.offUntil smoke test", (tester) async { 242 + testWidgets("Get.offUntil navigates to provided route", (tester) async {
237 await tester.pumpWidget( 243 await tester.pumpWidget(
238 Wrapper( 244 Wrapper(
239 - child: Container(), 245 + child: FirstScreen(),
240 ), 246 ),
241 ); 247 );
242 248
243 - Get.to(FirstScreen()); 249 + Get.offUntil(GetPageRoute(page: () => ThirdScreen()),
  250 + (route) => (route as GetPageRoute).routeName == '/FirstScreen');
244 251
245 await tester.pumpAndSettle(); 252 await tester.pumpAndSettle();
246 253
247 - Get.to(SecondScreen()); 254 + expect(find.byType(ThirdScreen), findsOneWidget);
  255 + });
248 256
249 - await tester.pumpAndSettle(); 257 + testWidgets(
  258 + "Get.offUntil removes previous routes if they don't match predicate",
  259 + (tester) async {
  260 + await tester.pumpWidget(
  261 + Wrapper(
  262 + child: Container(),
  263 + ),
  264 + );
250 265
  266 + Get.to(FirstScreen());
  267 + Get.to(SecondScreen());
251 Get.offUntil(GetPageRoute(page: () => ThirdScreen()), 268 Get.offUntil(GetPageRoute(page: () => ThirdScreen()),
252 (route) => (route as GetPageRoute).routeName == '/FirstScreen'); 269 (route) => (route as GetPageRoute).routeName == '/FirstScreen');
  270 + Get.back();
253 271
254 await tester.pumpAndSettle(); 272 await tester.pumpAndSettle();
255 273
256 - expect(find.byType(ThirdScreen), findsOneWidget); 274 + expect(find.byType(SecondScreen), findsNothing);
  275 + });
  276 +
  277 + testWidgets(
  278 + "Get.offUntil leaves previous routes that match provided predicate",
  279 + (tester) async {
  280 + await tester.pumpWidget(
  281 + Wrapper(
  282 + child: Container(),
  283 + ),
  284 + );
  285 +
  286 + Get.to(FirstScreen());
  287 + Get.to(SecondScreen());
  288 + Get.offUntil(GetPageRoute(page: () => ThirdScreen()),
  289 + (route) => (route as GetPageRoute).routeName == '/FirstScreen');
257 Get.back(); 290 Get.back();
258 291
259 await tester.pumpAndSettle(); 292 await tester.pumpAndSettle();