Refactor tests for Get.to, Get.toNamed, Get.off, Get.offNamed, Get.offAll, Get.offAllNamed
Showing
1 changed file
with
98 additions
and
53 deletions
| @@ -4,53 +4,27 @@ import 'package:get/get.dart'; | @@ -4,53 +4,27 @@ 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 { | 8 | + testWidgets("Get.to navigates to provided route", (tester) async { |
| 31 | await tester.pumpWidget( | 9 | await tester.pumpWidget( |
| 32 | Wrapper(child: Container()), | 10 | Wrapper(child: Container()), |
| 33 | ); | 11 | ); |
| 34 | 12 | ||
| 35 | - Get.to(SecondScreen()); | ||
| 36 | - | ||
| 37 | - await tester.pump(Duration.zero); | 13 | + Get.to(FirstScreen()); |
| 38 | 14 | ||
| 39 | await tester.pumpAndSettle(); | 15 | await tester.pumpAndSettle(); |
| 40 | 16 | ||
| 41 | - expect(find.byType(SecondScreen), findsOneWidget); | 17 | + expect(find.byType(FirstScreen), findsOneWidget); |
| 42 | }); | 18 | }); |
| 43 | - testWidgets("Get.toNamed smoke test", (tester) async { | 19 | + |
| 20 | + testWidgets("Get.toNamed navigates to provided named route", (tester) async { | ||
| 44 | await tester.pumpWidget( | 21 | await tester.pumpWidget( |
| 45 | GetMaterialApp( | 22 | GetMaterialApp( |
| 46 | initialRoute: '/', | 23 | initialRoute: '/', |
| 47 | getPages: [ | 24 | getPages: [ |
| 48 | - GetPage( | ||
| 49 | - page: () => FirstScreen(), | ||
| 50 | - name: '/', | ||
| 51 | - customTransition: SizeTransitions()), | 25 | + GetPage(page: () => FirstScreen(), name: '/'), |
| 52 | GetPage(page: () => SecondScreen(), name: '/second'), | 26 | GetPage(page: () => SecondScreen(), name: '/second'), |
| 53 | - GetPage(page: () => ThirdScreen(), name: '/third'), | 27 | + GetPage(page: () => ThirdScreen(), name: '/third') |
| 54 | ], | 28 | ], |
| 55 | ), | 29 | ), |
| 56 | ); | 30 | ); |
| @@ -62,25 +36,34 @@ void main() { | @@ -62,25 +36,34 @@ void main() { | ||
| 62 | expect(find.byType(SecondScreen), findsOneWidget); | 36 | expect(find.byType(SecondScreen), findsOneWidget); |
| 63 | }); | 37 | }); |
| 64 | 38 | ||
| 65 | - testWidgets("Get.off smoke test", (tester) async { | 39 | + testWidgets("Get.off navigates to provided route", (tester) async { |
| 66 | await tester.pumpWidget( | 40 | await tester.pumpWidget( |
| 67 | Wrapper(child: Container()), | 41 | Wrapper(child: Container()), |
| 68 | ); | 42 | ); |
| 69 | 43 | ||
| 70 | Get.to(FirstScreen()); | 44 | Get.to(FirstScreen()); |
| 45 | + Get.off(SecondScreen()); | ||
| 71 | 46 | ||
| 72 | await tester.pumpAndSettle(); | 47 | await tester.pumpAndSettle(); |
| 73 | 48 | ||
| 74 | - expect(find.byType(FirstScreen), findsOneWidget); | 49 | + expect(find.byType(SecondScreen), findsOneWidget); |
| 50 | + }); | ||
| 51 | + | ||
| 52 | + testWidgets("Get.off removes current route", (tester) async { | ||
| 53 | + await tester.pumpWidget( | ||
| 54 | + Wrapper(child: Container()), | ||
| 55 | + ); | ||
| 75 | 56 | ||
| 57 | + Get.to(FirstScreen()); | ||
| 76 | Get.off(SecondScreen()); | 58 | Get.off(SecondScreen()); |
| 59 | + Get.back(); | ||
| 77 | 60 | ||
| 78 | await tester.pumpAndSettle(); | 61 | await tester.pumpAndSettle(); |
| 79 | 62 | ||
| 80 | - expect(find.byType(SecondScreen), findsOneWidget); | 63 | + expect(find.byType(FirstScreen), findsNothing); |
| 81 | }); | 64 | }); |
| 82 | 65 | ||
| 83 | - testWidgets("Get.offNamed smoke test", (tester) async { | 66 | + testWidgets("Get.offNamed navigates to provided named route", (tester) async { |
| 84 | await tester.pumpWidget( | 67 | await tester.pumpWidget( |
| 85 | GetMaterialApp( | 68 | GetMaterialApp( |
| 86 | initialRoute: '/', | 69 | initialRoute: '/', |
| @@ -93,73 +76,135 @@ void main() { | @@ -93,73 +76,135 @@ void main() { | ||
| 93 | ), | 76 | ), |
| 94 | ); | 77 | ); |
| 95 | 78 | ||
| 96 | - Get.toNamed('/first'); | 79 | + Get.offNamed('/first'); |
| 97 | 80 | ||
| 98 | await tester.pumpAndSettle(); | 81 | await tester.pumpAndSettle(); |
| 99 | 82 | ||
| 100 | expect(find.byType(FirstScreen), findsOneWidget); | 83 | expect(find.byType(FirstScreen), findsOneWidget); |
| 84 | + }); | ||
| 101 | 85 | ||
| 86 | + testWidgets("Get.offNamed removes current route", (tester) async { | ||
| 87 | + await tester.pumpWidget( | ||
| 88 | + GetMaterialApp( | ||
| 89 | + initialRoute: '/', | ||
| 90 | + getPages: [ | ||
| 91 | + GetPage(name: '/', page: () => Container()), | ||
| 92 | + GetPage(name: '/first', page: () => FirstScreen()), | ||
| 93 | + GetPage(name: '/second', page: () => SecondScreen()), | ||
| 94 | + GetPage(name: '/third', page: () => ThirdScreen()), | ||
| 95 | + ], | ||
| 96 | + ), | ||
| 97 | + ); | ||
| 98 | + | ||
| 99 | + Get.toNamed('/first'); | ||
| 102 | Get.offNamed('/second'); | 100 | Get.offNamed('/second'); |
| 101 | + Get.back(); | ||
| 103 | 102 | ||
| 104 | await tester.pumpAndSettle(); | 103 | await tester.pumpAndSettle(); |
| 105 | 104 | ||
| 106 | - expect(find.byType(SecondScreen), findsOneWidget); | 105 | + expect(find.byType(FirstScreen), findsNothing); |
| 107 | }); | 106 | }); |
| 108 | 107 | ||
| 109 | - testWidgets("Get.offAll smoke test", (tester) async { | 108 | + testWidgets("Get.offNamed removes only current route", (tester) async { |
| 109 | + await tester.pumpWidget( | ||
| 110 | + GetMaterialApp( | ||
| 111 | + initialRoute: '/', | ||
| 112 | + getPages: [ | ||
| 113 | + GetPage(name: '/', page: () => Container()), | ||
| 114 | + GetPage(name: '/first', page: () => FirstScreen()), | ||
| 115 | + GetPage(name: '/second', page: () => SecondScreen()), | ||
| 116 | + GetPage(name: '/third', page: () => ThirdScreen()), | ||
| 117 | + ], | ||
| 118 | + ), | ||
| 119 | + ); | ||
| 120 | + | ||
| 121 | + Get.toNamed('/first'); | ||
| 122 | + Get.offNamed('/second'); | ||
| 123 | + Get.back(); | ||
| 124 | + | ||
| 125 | + await tester.pumpAndSettle(); | ||
| 126 | + | ||
| 127 | + expect(find.byType(Container), findsOneWidget); | ||
| 128 | + }); | ||
| 129 | + | ||
| 130 | + testWidgets("Get.offAll navigates to provided route", (tester) async { | ||
| 110 | await tester.pumpWidget( | 131 | await tester.pumpWidget( |
| 111 | Wrapper(child: Container()), | 132 | Wrapper(child: Container()), |
| 112 | ); | 133 | ); |
| 113 | 134 | ||
| 114 | - Get.to(FirstScreen()); | 135 | + Get.offAll(FirstScreen()); |
| 115 | 136 | ||
| 116 | await tester.pumpAndSettle(); | 137 | await tester.pumpAndSettle(); |
| 117 | 138 | ||
| 118 | expect(find.byType(FirstScreen), findsOneWidget); | 139 | expect(find.byType(FirstScreen), findsOneWidget); |
| 140 | + }); | ||
| 141 | + | ||
| 142 | + testWidgets("Get.offAll removes all previous routes", (tester) async { | ||
| 143 | + await tester.pumpWidget( | ||
| 144 | + Wrapper(child: Container()), | ||
| 145 | + ); | ||
| 119 | 146 | ||
| 147 | + Get.to(FirstScreen()); | ||
| 120 | Get.to(SecondScreen()); | 148 | Get.to(SecondScreen()); |
| 149 | + Get.offAll(ThirdScreen()); | ||
| 150 | + Get.back(); | ||
| 121 | 151 | ||
| 122 | await tester.pumpAndSettle(); | 152 | await tester.pumpAndSettle(); |
| 123 | 153 | ||
| 124 | - expect(find.byType(SecondScreen), findsOneWidget); | 154 | + expect(find.byType(SecondScreen), findsNothing); |
| 125 | 155 | ||
| 126 | - Get.offAll(ThirdScreen()); | 156 | + Get.back(); |
| 127 | 157 | ||
| 128 | await tester.pumpAndSettle(); | 158 | await tester.pumpAndSettle(); |
| 129 | 159 | ||
| 130 | - expect(find.byType(ThirdScreen), findsOneWidget); | 160 | + expect(find.byType(FirstScreen), findsNothing); |
| 131 | }); | 161 | }); |
| 132 | 162 | ||
| 133 | - testWidgets("Get.offAllNamed smoke test", (tester) async { | 163 | + testWidgets("Get.offAllNamed navigates to provided named route", |
| 164 | + (tester) async { | ||
| 134 | await tester.pumpWidget( | 165 | await tester.pumpWidget( |
| 135 | WrapperNamed( | 166 | WrapperNamed( |
| 136 | - initialRoute: '/', | 167 | + initialRoute: '/first', |
| 137 | namedRoutes: [ | 168 | namedRoutes: [ |
| 138 | - GetPage(page: () => Container(), name: '/'), | ||
| 139 | GetPage(page: () => FirstScreen(), name: '/first'), | 169 | GetPage(page: () => FirstScreen(), name: '/first'), |
| 140 | GetPage(page: () => SecondScreen(), name: '/second'), | 170 | GetPage(page: () => SecondScreen(), name: '/second'), |
| 141 | - GetPage(page: () => ThirdScreen(), name: '/third'), | 171 | + GetPage(page: () => ThirdScreen(), name: '/third') |
| 142 | ], | 172 | ], |
| 143 | ), | 173 | ), |
| 144 | ); | 174 | ); |
| 145 | 175 | ||
| 146 | - Get.toNamed('/first'); | 176 | + Get.toNamed('/second'); |
| 147 | 177 | ||
| 148 | await tester.pumpAndSettle(); | 178 | await tester.pumpAndSettle(); |
| 149 | 179 | ||
| 150 | - expect(find.byType(FirstScreen), findsOneWidget); | 180 | + expect(find.byType(SecondScreen), findsOneWidget); |
| 181 | + }); | ||
| 182 | + | ||
| 183 | + testWidgets("Get.offAllNamed removes all previous routes", (tester) async { | ||
| 184 | + await tester.pumpWidget( | ||
| 185 | + WrapperNamed( | ||
| 186 | + initialRoute: '/first', | ||
| 187 | + namedRoutes: [ | ||
| 188 | + GetPage(page: () => FirstScreen(), name: '/first'), | ||
| 189 | + GetPage(page: () => SecondScreen(), name: '/second'), | ||
| 190 | + GetPage(page: () => ThirdScreen(), name: '/third') | ||
| 191 | + ], | ||
| 192 | + ), | ||
| 193 | + ); | ||
| 151 | 194 | ||
| 152 | Get.toNamed('/second'); | 195 | Get.toNamed('/second'); |
| 196 | + Get.offAllNamed('/third'); | ||
| 197 | + Get.back(); | ||
| 153 | 198 | ||
| 154 | await tester.pumpAndSettle(); | 199 | await tester.pumpAndSettle(); |
| 155 | 200 | ||
| 156 | - expect(find.byType(SecondScreen), findsOneWidget); | 201 | + expect(find.byType(SecondScreen), findsNothing); |
| 157 | 202 | ||
| 158 | - Get.offAllNamed('/third'); | 203 | + Get.back(); |
| 159 | 204 | ||
| 160 | await tester.pumpAndSettle(); | 205 | await tester.pumpAndSettle(); |
| 161 | 206 | ||
| 162 | - expect(find.byType(ThirdScreen), findsOneWidget); | 207 | + expect(find.byType(FirstScreen), findsNothing); |
| 163 | }); | 208 | }); |
| 164 | 209 | ||
| 165 | testWidgets("Get.offAndToNamed smoke test", (tester) async { | 210 | testWidgets("Get.offAndToNamed smoke test", (tester) async { |
-
Please register or login to post a comment