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