Committed by
GitHub
Merge pull request #879 from vbuberen/refactor/navigation_tests
Refactoring for navigation extensions tests
Showing
1 changed file
with
209 additions
and
146 deletions
| @@ -4,56 +4,26 @@ import 'package:get/get.dart'; | @@ -4,56 +4,26 @@ import 'package:get/get.dart'; | ||
| 4 | 4 | ||
| 5 | import 'utils/wrapper.dart'; | 5 | import 'utils/wrapper.dart'; |
| 6 | 6 | ||
| 7 | -class SizeTransitions extends CustomTransition { | ||
| 8 | - @override | ||
| 9 | - Widget buildTransition( | ||
| 10 | - BuildContext context, | ||
| 11 | - Curve curve, | ||
| 12 | - Alignment alignment, | ||
| 13 | - Animation<double> animation, | ||
| 14 | - Animation<double> secondaryAnimation, | ||
| 15 | - Widget child) { | ||
| 16 | - return Align( | ||
| 17 | - alignment: Alignment.center, | ||
| 18 | - child: SizeTransition( | ||
| 19 | - sizeFactor: CurvedAnimation( | ||
| 20 | - parent: animation, | ||
| 21 | - curve: curve, | ||
| 22 | - ), | ||
| 23 | - child: child, | ||
| 24 | - ), | ||
| 25 | - ); | ||
| 26 | - } | ||
| 27 | -} | ||
| 28 | - | ||
| 29 | void main() { | 7 | void main() { |
| 30 | - testWidgets("Get.to smoke test", (tester) async { | ||
| 31 | - await tester.pumpWidget( | ||
| 32 | - Wrapper(child: Container()), | ||
| 33 | - ); | 8 | + testWidgets("Get.to navigates to provided route", (tester) async { |
| 9 | + await tester.pumpWidget(Wrapper(child: Container())); | ||
| 34 | 10 | ||
| 35 | - Get.to(SecondScreen()); | ||
| 36 | - | ||
| 37 | - await tester.pump(Duration.zero); | 11 | + Get.to(FirstScreen()); |
| 38 | 12 | ||
| 39 | await tester.pumpAndSettle(); | 13 | await tester.pumpAndSettle(); |
| 40 | 14 | ||
| 41 | - expect(find.byType(SecondScreen), findsOneWidget); | 15 | + expect(find.byType(FirstScreen), findsOneWidget); |
| 42 | }); | 16 | }); |
| 43 | - testWidgets("Get.toNamed smoke test", (tester) async { | ||
| 44 | - await tester.pumpWidget( | ||
| 45 | - GetMaterialApp( | ||
| 46 | - initialRoute: '/', | ||
| 47 | - getPages: [ | ||
| 48 | - GetPage( | ||
| 49 | - page: () => FirstScreen(), | ||
| 50 | - name: '/', | ||
| 51 | - customTransition: SizeTransitions()), | ||
| 52 | - GetPage(page: () => SecondScreen(), name: '/second'), | ||
| 53 | - GetPage(page: () => ThirdScreen(), name: '/third'), | ||
| 54 | - ], | ||
| 55 | - ), | ||
| 56 | - ); | 17 | + |
| 18 | + testWidgets("Get.toNamed navigates to provided named route", (tester) async { | ||
| 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 | + )); | ||
| 57 | 27 | ||
| 58 | Get.toNamed('/second'); | 28 | Get.toNamed('/second'); |
| 59 | 29 | ||
| @@ -62,153 +32,225 @@ void main() { | @@ -62,153 +32,225 @@ void main() { | ||
| 62 | expect(find.byType(SecondScreen), findsOneWidget); | 32 | expect(find.byType(SecondScreen), findsOneWidget); |
| 63 | }); | 33 | }); |
| 64 | 34 | ||
| 65 | - testWidgets("Get.off smoke test", (tester) async { | ||
| 66 | - await tester.pumpWidget( | ||
| 67 | - Wrapper(child: Container()), | ||
| 68 | - ); | 35 | + testWidgets("Get.off navigates to provided route", (tester) async { |
| 36 | + await tester.pumpWidget(Wrapper(child: FirstScreen())); | ||
| 69 | 37 | ||
| 70 | - Get.to(FirstScreen()); | 38 | + Get.off(SecondScreen()); |
| 71 | 39 | ||
| 72 | await tester.pumpAndSettle(); | 40 | await tester.pumpAndSettle(); |
| 73 | 41 | ||
| 74 | - expect(find.byType(FirstScreen), findsOneWidget); | 42 | + expect(find.byType(SecondScreen), findsOneWidget); |
| 43 | + }); | ||
| 44 | + | ||
| 45 | + testWidgets("Get.off removes current route", (tester) async { | ||
| 46 | + await tester.pumpWidget(Wrapper(child: FirstScreen())); | ||
| 75 | 47 | ||
| 76 | Get.off(SecondScreen()); | 48 | Get.off(SecondScreen()); |
| 49 | + Get.back(); | ||
| 77 | 50 | ||
| 78 | await tester.pumpAndSettle(); | 51 | await tester.pumpAndSettle(); |
| 79 | 52 | ||
| 80 | - expect(find.byType(SecondScreen), findsOneWidget); | 53 | + expect(find.byType(FirstScreen), findsNothing); |
| 81 | }); | 54 | }); |
| 82 | 55 | ||
| 83 | - testWidgets("Get.offNamed smoke test", (tester) async { | ||
| 84 | - await tester.pumpWidget( | ||
| 85 | - GetMaterialApp( | ||
| 86 | - initialRoute: '/', | ||
| 87 | - getPages: [ | ||
| 88 | - GetPage(name: '/', page: () => Container()), | ||
| 89 | - GetPage(name: '/first', page: () => FirstScreen()), | ||
| 90 | - GetPage(name: '/second', page: () => SecondScreen()), | ||
| 91 | - GetPage(name: '/third', page: () => ThirdScreen()), | ||
| 92 | - ], | ||
| 93 | - ), | ||
| 94 | - ); | 56 | + testWidgets("Get.offNamed navigates to provided named route", (tester) async { |
| 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 | + )); | ||
| 95 | 65 | ||
| 96 | - Get.toNamed('/first'); | 66 | + Get.offNamed('/second'); |
| 97 | 67 | ||
| 98 | await tester.pumpAndSettle(); | 68 | await tester.pumpAndSettle(); |
| 99 | 69 | ||
| 100 | - expect(find.byType(FirstScreen), findsOneWidget); | 70 | + expect(find.byType(SecondScreen), findsOneWidget); |
| 71 | + }); | ||
| 72 | + | ||
| 73 | + testWidgets("Get.offNamed removes current route", (tester) async { | ||
| 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 | + )); | ||
| 101 | 82 | ||
| 102 | Get.offNamed('/second'); | 83 | Get.offNamed('/second'); |
| 84 | + Get.back(); | ||
| 103 | 85 | ||
| 104 | await tester.pumpAndSettle(); | 86 | await tester.pumpAndSettle(); |
| 105 | 87 | ||
| 106 | - expect(find.byType(SecondScreen), findsOneWidget); | 88 | + expect(find.byType(FirstScreen), findsNothing); |
| 107 | }); | 89 | }); |
| 108 | 90 | ||
| 109 | - testWidgets("Get.offAll smoke test", (tester) async { | ||
| 110 | - await tester.pumpWidget( | ||
| 111 | - Wrapper(child: Container()), | ||
| 112 | - ); | 91 | + testWidgets("Get.offNamed removes only current route", (tester) async { |
| 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 | + )); | ||
| 113 | 100 | ||
| 114 | - Get.to(FirstScreen()); | 101 | + Get.toNamed('/second'); |
| 102 | + Get.offNamed('/third'); | ||
| 103 | + Get.back(); | ||
| 115 | 104 | ||
| 116 | await tester.pumpAndSettle(); | 105 | await tester.pumpAndSettle(); |
| 117 | 106 | ||
| 118 | expect(find.byType(FirstScreen), findsOneWidget); | 107 | expect(find.byType(FirstScreen), findsOneWidget); |
| 108 | + }); | ||
| 119 | 109 | ||
| 120 | - Get.to(SecondScreen()); | 110 | + testWidgets("Get.offAll navigates to provided route", (tester) async { |
| 111 | + await tester.pumpWidget(Wrapper(child: FirstScreen())); | ||
| 112 | + | ||
| 113 | + Get.offAll(SecondScreen()); | ||
| 121 | 114 | ||
| 122 | await tester.pumpAndSettle(); | 115 | await tester.pumpAndSettle(); |
| 123 | 116 | ||
| 124 | expect(find.byType(SecondScreen), findsOneWidget); | 117 | expect(find.byType(SecondScreen), findsOneWidget); |
| 118 | + }); | ||
| 125 | 119 | ||
| 120 | + testWidgets("Get.offAll removes all previous routes", (tester) async { | ||
| 121 | + await tester.pumpWidget(Wrapper(child: FirstScreen())); | ||
| 122 | + | ||
| 123 | + Get.to(SecondScreen()); | ||
| 126 | Get.offAll(ThirdScreen()); | 124 | Get.offAll(ThirdScreen()); |
| 125 | + Get.back(); | ||
| 127 | 126 | ||
| 128 | await tester.pumpAndSettle(); | 127 | await tester.pumpAndSettle(); |
| 129 | 128 | ||
| 130 | - expect(find.byType(ThirdScreen), findsOneWidget); | ||
| 131 | - }); | ||
| 132 | - | ||
| 133 | - testWidgets("Get.offAllNamed smoke test", (tester) async { | ||
| 134 | - await tester.pumpWidget( | ||
| 135 | - WrapperNamed( | ||
| 136 | - initialRoute: '/', | ||
| 137 | - namedRoutes: [ | ||
| 138 | - GetPage(page: () => Container(), name: '/'), | ||
| 139 | - GetPage(page: () => FirstScreen(), name: '/first'), | ||
| 140 | - GetPage(page: () => SecondScreen(), name: '/second'), | ||
| 141 | - GetPage(page: () => ThirdScreen(), name: '/third'), | ||
| 142 | - ], | ||
| 143 | - ), | ||
| 144 | - ); | 129 | + expect(find.byType(SecondScreen), findsNothing); |
| 145 | 130 | ||
| 146 | - Get.toNamed('/first'); | 131 | + Get.back(); |
| 147 | 132 | ||
| 148 | await tester.pumpAndSettle(); | 133 | await tester.pumpAndSettle(); |
| 149 | 134 | ||
| 150 | - expect(find.byType(FirstScreen), findsOneWidget); | 135 | + expect(find.byType(FirstScreen), findsNothing); |
| 136 | + }); | ||
| 137 | + | ||
| 138 | + testWidgets("Get.offAllNamed navigates to provided named route", | ||
| 139 | + (tester) async { | ||
| 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 | + )); | ||
| 151 | 148 | ||
| 152 | Get.toNamed('/second'); | 149 | Get.toNamed('/second'); |
| 153 | 150 | ||
| 154 | await tester.pumpAndSettle(); | 151 | await tester.pumpAndSettle(); |
| 155 | 152 | ||
| 156 | expect(find.byType(SecondScreen), findsOneWidget); | 153 | expect(find.byType(SecondScreen), findsOneWidget); |
| 154 | + }); | ||
| 157 | 155 | ||
| 156 | + testWidgets("Get.offAllNamed removes all previous routes", (tester) async { | ||
| 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 | + )); | ||
| 165 | + | ||
| 166 | + Get.toNamed('/second'); | ||
| 158 | Get.offAllNamed('/third'); | 167 | Get.offAllNamed('/third'); |
| 168 | + Get.back(); | ||
| 159 | 169 | ||
| 160 | await tester.pumpAndSettle(); | 170 | await tester.pumpAndSettle(); |
| 161 | 171 | ||
| 162 | - expect(find.byType(ThirdScreen), findsOneWidget); | 172 | + expect(find.byType(SecondScreen), findsNothing); |
| 173 | + | ||
| 174 | + Get.back(); | ||
| 175 | + | ||
| 176 | + await tester.pumpAndSettle(); | ||
| 177 | + | ||
| 178 | + expect(find.byType(FirstScreen), findsNothing); | ||
| 163 | }); | 179 | }); |
| 164 | 180 | ||
| 165 | - testWidgets("Get.offAndToNamed smoke test", (tester) async { | ||
| 166 | - await tester.pumpWidget( | ||
| 167 | - WrapperNamed( | ||
| 168 | - initialRoute: '/', | ||
| 169 | - namedRoutes: [ | ||
| 170 | - GetPage(page: () => Container(), name: '/'), | ||
| 171 | - GetPage(page: () => FirstScreen(), name: '/first'), | ||
| 172 | - GetPage(page: () => SecondScreen(), name: '/second'), | ||
| 173 | - GetPage(page: () => ThirdScreen(), name: '/third'), | ||
| 174 | - ], | ||
| 175 | - ), | ||
| 176 | - ); | 181 | + testWidgets("Get.offAndToNamed navigates to provided route", (tester) async { |
| 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 | + )); | ||
| 177 | 190 | ||
| 178 | - Get.toNamed('/first'); | 191 | + Get.offAndToNamed('/second'); |
| 179 | 192 | ||
| 180 | await tester.pumpAndSettle(); | 193 | await tester.pumpAndSettle(); |
| 181 | 194 | ||
| 182 | - expect(find.byType(FirstScreen), findsOneWidget); | 195 | + expect(find.byType(SecondScreen), findsOneWidget); |
| 196 | + }); | ||
| 197 | + | ||
| 198 | + testWidgets("Get.offAndToNamed removes previous route", (tester) async { | ||
| 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 | + )); | ||
| 183 | 207 | ||
| 184 | Get.offAndToNamed('/second'); | 208 | Get.offAndToNamed('/second'); |
| 209 | + Get.back(); | ||
| 185 | 210 | ||
| 186 | await tester.pumpAndSettle(); | 211 | await tester.pumpAndSettle(); |
| 187 | 212 | ||
| 188 | - expect(find.byType(SecondScreen), findsOneWidget); | 213 | + expect(find.byType(FirstScreen), findsNothing); |
| 189 | }); | 214 | }); |
| 190 | 215 | ||
| 191 | - testWidgets("Get.offUntil smoke test", (tester) async { | ||
| 192 | - await tester.pumpWidget( | ||
| 193 | - Wrapper( | ||
| 194 | - child: Container(), | ||
| 195 | - ), | ||
| 196 | - ); | 216 | + testWidgets("Get.offUntil navigates to provided route", (tester) async { |
| 217 | + await tester.pumpWidget(Wrapper(child: Container())); | ||
| 197 | 218 | ||
| 198 | Get.to(FirstScreen()); | 219 | Get.to(FirstScreen()); |
| 199 | 220 | ||
| 221 | + Get.offUntil(GetPageRoute(page: () => ThirdScreen()), | ||
| 222 | + (route) => (route as GetPageRoute).routeName == '/FirstScreen'); | ||
| 223 | + | ||
| 200 | await tester.pumpAndSettle(); | 224 | await tester.pumpAndSettle(); |
| 201 | 225 | ||
| 202 | - Get.to(SecondScreen()); | 226 | + expect(find.byType(ThirdScreen), findsOneWidget); |
| 227 | + }); | ||
| 203 | 228 | ||
| 204 | - await tester.pumpAndSettle(); | 229 | + testWidgets( |
| 230 | + "Get.offUntil removes previous routes if they don't match predicate", | ||
| 231 | + (tester) async { | ||
| 232 | + await tester.pumpWidget(Wrapper(child: Container())); | ||
| 205 | 233 | ||
| 234 | + Get.to(FirstScreen()); | ||
| 235 | + Get.to(SecondScreen()); | ||
| 206 | Get.offUntil(GetPageRoute(page: () => ThirdScreen()), | 236 | Get.offUntil(GetPageRoute(page: () => ThirdScreen()), |
| 207 | (route) => (route as GetPageRoute).routeName == '/FirstScreen'); | 237 | (route) => (route as GetPageRoute).routeName == '/FirstScreen'); |
| 238 | + Get.back(); | ||
| 208 | 239 | ||
| 209 | await tester.pumpAndSettle(); | 240 | await tester.pumpAndSettle(); |
| 210 | 241 | ||
| 211 | - expect(find.byType(ThirdScreen), findsOneWidget); | 242 | + expect(find.byType(SecondScreen), findsNothing); |
| 243 | + }); | ||
| 244 | + | ||
| 245 | + testWidgets( | ||
| 246 | + "Get.offUntil leaves previous routes that match provided predicate", | ||
| 247 | + (tester) async { | ||
| 248 | + await tester.pumpWidget(Wrapper(child: Container())); | ||
| 249 | + | ||
| 250 | + Get.to(FirstScreen()); | ||
| 251 | + Get.to(SecondScreen()); | ||
| 252 | + Get.offUntil(GetPageRoute(page: () => ThirdScreen()), | ||
| 253 | + (route) => (route as GetPageRoute).routeName == '/FirstScreen'); | ||
| 212 | Get.back(); | 254 | Get.back(); |
| 213 | 255 | ||
| 214 | await tester.pumpAndSettle(); | 256 | await tester.pumpAndSettle(); |
| @@ -216,40 +258,57 @@ void main() { | @@ -216,40 +258,57 @@ void main() { | ||
| 216 | expect(find.byType(FirstScreen), findsOneWidget); | 258 | expect(find.byType(FirstScreen), findsOneWidget); |
| 217 | }); | 259 | }); |
| 218 | 260 | ||
| 219 | - testWidgets("Get.offNamedUntil smoke test", (tester) async { | ||
| 220 | - await tester.pumpWidget( | ||
| 221 | - WrapperNamed( | ||
| 222 | - initialRoute: '/', | ||
| 223 | - namedRoutes: [ | ||
| 224 | - GetPage( | ||
| 225 | - page: () => Container(), | ||
| 226 | - name: '/', | ||
| 227 | - popGesture: true, | ||
| 228 | - transition: Transition.cupertino), | ||
| 229 | - GetPage( | ||
| 230 | - page: () => FirstScreen(), | ||
| 231 | - name: '/first', | ||
| 232 | - transition: Transition.size), | ||
| 233 | - GetPage( | ||
| 234 | - page: () => SecondScreen(), name: '/second', transition: null), | ||
| 235 | - GetPage(page: () => ThirdScreen(), name: '/third'), | ||
| 236 | - ], | ||
| 237 | - ), | ||
| 238 | - ); | 261 | + testWidgets("Get.offNamedUntil navigates to provided route", (tester) async { |
| 262 | + await tester.pumpWidget(WrapperNamed( | ||
| 263 | + initialRoute: '/first', | ||
| 264 | + namedRoutes: [ | ||
| 265 | + GetPage(page: () => FirstScreen(), name: '/first'), | ||
| 266 | + GetPage(page: () => SecondScreen(), name: '/second'), | ||
| 267 | + GetPage(page: () => ThirdScreen(), name: '/third') | ||
| 268 | + ], | ||
| 269 | + )); | ||
| 239 | 270 | ||
| 240 | - Get.toNamed('/first'); | ||
| 241 | - Get.toNamed('/second'); | 271 | + Get.offNamedUntil('/second', ModalRoute.withName('/first')); |
| 242 | 272 | ||
| 243 | await tester.pumpAndSettle(); | 273 | await tester.pumpAndSettle(); |
| 244 | 274 | ||
| 245 | expect(find.byType(SecondScreen), findsOneWidget); | 275 | expect(find.byType(SecondScreen), findsOneWidget); |
| 276 | + }); | ||
| 277 | + | ||
| 278 | + testWidgets( | ||
| 279 | + "Get.offNamedUntil removes previous routes if they don't match predicate", | ||
| 280 | + (tester) async { | ||
| 281 | + await tester.pumpWidget(WrapperNamed( | ||
| 282 | + initialRoute: '/first', | ||
| 283 | + namedRoutes: [ | ||
| 284 | + GetPage(page: () => FirstScreen(), name: '/first'), | ||
| 285 | + GetPage(page: () => SecondScreen(), name: '/second'), | ||
| 286 | + GetPage(page: () => ThirdScreen(), name: '/third') | ||
| 287 | + ], | ||
| 288 | + )); | ||
| 246 | 289 | ||
| 290 | + Get.toNamed('/second'); | ||
| 247 | Get.offNamedUntil('/third', ModalRoute.withName('/first')); | 291 | Get.offNamedUntil('/third', ModalRoute.withName('/first')); |
| 248 | 292 | ||
| 249 | await tester.pumpAndSettle(); | 293 | await tester.pumpAndSettle(); |
| 250 | 294 | ||
| 251 | - expect(find.byType(ThirdScreen), findsOneWidget); | 295 | + expect(find.byType(SecondScreen), findsNothing); |
| 296 | + }); | ||
| 297 | + | ||
| 298 | + testWidgets( | ||
| 299 | + "Get.offNamedUntil leaves previous routes that match provided predicate", | ||
| 300 | + (tester) async { | ||
| 301 | + await tester.pumpWidget(WrapperNamed( | ||
| 302 | + initialRoute: '/first', | ||
| 303 | + namedRoutes: [ | ||
| 304 | + GetPage(page: () => FirstScreen(), name: '/first'), | ||
| 305 | + GetPage(page: () => SecondScreen(), name: '/second'), | ||
| 306 | + GetPage(page: () => ThirdScreen(), name: '/third'), | ||
| 307 | + ], | ||
| 308 | + )); | ||
| 252 | 309 | ||
| 310 | + Get.toNamed('/second'); | ||
| 311 | + Get.offNamedUntil('/third', ModalRoute.withName('/first')); | ||
| 253 | Get.back(); | 312 | Get.back(); |
| 254 | 313 | ||
| 255 | await tester.pumpAndSettle(); | 314 | await tester.pumpAndSettle(); |
| @@ -257,27 +316,31 @@ void main() { | @@ -257,27 +316,31 @@ void main() { | ||
| 257 | expect(find.byType(FirstScreen), findsOneWidget); | 316 | expect(find.byType(FirstScreen), findsOneWidget); |
| 258 | }); | 317 | }); |
| 259 | 318 | ||
| 260 | - testWidgets("Get.back smoke test", (tester) async { | 319 | + testWidgets("Get.back navigates back", (tester) async { |
| 261 | await tester.pumpWidget( | 320 | await tester.pumpWidget( |
| 262 | - Wrapper(child: Container()), | 321 | + Wrapper(child: FirstScreen()), |
| 263 | ); | 322 | ); |
| 264 | 323 | ||
| 265 | - Get.to(FirstScreen()); | 324 | + Get.to(SecondScreen()); |
| 325 | + Get.back(); | ||
| 266 | 326 | ||
| 267 | await tester.pumpAndSettle(); | 327 | await tester.pumpAndSettle(); |
| 268 | 328 | ||
| 269 | expect(find.byType(FirstScreen), findsOneWidget); | 329 | expect(find.byType(FirstScreen), findsOneWidget); |
| 330 | + }); | ||
| 270 | 331 | ||
| 271 | - Get.to(SecondScreen()); | ||
| 272 | - | ||
| 273 | - await tester.pumpAndSettle(); | ||
| 274 | - | ||
| 275 | - expect(find.byType(SecondScreen), findsOneWidget); | 332 | + testWidgets( |
| 333 | + "Get.back with closeOverlays pops both snackbar and current route", | ||
| 334 | + (tester) async { | ||
| 335 | + await tester.pumpWidget(Wrapper(child: FirstScreen())); | ||
| 276 | 336 | ||
| 277 | - Get.back(); | 337 | + Get.to(SecondScreen()); |
| 338 | + Get.snackbar('title', "message"); | ||
| 339 | + Get.back(closeOverlays: true); | ||
| 278 | 340 | ||
| 279 | await tester.pumpAndSettle(); | 341 | await tester.pumpAndSettle(); |
| 280 | 342 | ||
| 343 | + expect(Get.isSnackbarOpen, false); | ||
| 281 | expect(find.byType(FirstScreen), findsOneWidget); | 344 | expect(find.byType(FirstScreen), findsOneWidget); |
| 282 | }); | 345 | }); |
| 283 | 346 |
-
Please register or login to post a comment