Ryan

feat: add test for get_main

  1 +import 'package:flutter/material.dart';
  2 +import 'package:flutter_test/flutter_test.dart';
  3 +import 'package:get/get.dart';
  4 +
  5 +import 'util/wrapper.dart';
  6 +
  7 +void main() {
  8 + testWidgets("Get.to smoke test", (tester) async {
  9 + await tester.pumpWidget(
  10 + Wrapper(child: Container()),
  11 + );
  12 +
  13 + Get.to(SecondScreen());
  14 +
  15 + await tester.pumpAndSettle();
  16 +
  17 + expect(find.byType(SecondScreen), findsOneWidget);
  18 + });
  19 + testWidgets("Get.toNamed smoke test", (tester) async {
  20 + await tester.pumpWidget(
  21 + Wrapper(
  22 + initialRoute: '/',
  23 + namedRoutes: {
  24 + '/': GetRoute(page: FirstScreen()),
  25 + '/second': GetRoute(page: SecondScreen()),
  26 + '/third': GetRoute(page: ThirdScreen())
  27 + },
  28 + child: Container(),
  29 + ),
  30 + );
  31 +
  32 + Get.toNamed('/second');
  33 +
  34 + await tester.pumpAndSettle();
  35 +
  36 + expect(find.byType(SecondScreen), findsOneWidget);
  37 + });
  38 +
  39 + testWidgets("Get.off smoke test", (tester) async {
  40 + await tester.pumpWidget(
  41 + Wrapper(child: Container()),
  42 + );
  43 +
  44 + Get.to(FirstScreen());
  45 +
  46 + await tester.pumpAndSettle();
  47 +
  48 + expect(find.byType(FirstScreen), findsOneWidget);
  49 +
  50 + Get.off(SecondScreen());
  51 +
  52 + await tester.pumpAndSettle();
  53 +
  54 + expect(find.byType(SecondScreen), findsOneWidget);
  55 + });
  56 +
  57 + testWidgets("Get.offNamed smoke test", (tester) async {
  58 + await tester.pumpWidget(
  59 + Wrapper(
  60 + initialRoute: '/',
  61 + namedRoutes: {
  62 + '/': GetRoute(page: Container()),
  63 + '/first': GetRoute(page: FirstScreen()),
  64 + '/second': GetRoute(page: SecondScreen()),
  65 + '/third': GetRoute(page: ThirdScreen())
  66 + },
  67 + child: Container(),
  68 + ),
  69 + );
  70 +
  71 + Get.toNamed('/first');
  72 +
  73 + await tester.pumpAndSettle();
  74 +
  75 + expect(find.byType(FirstScreen), findsOneWidget);
  76 +
  77 + Get.offNamed('/second');
  78 +
  79 + await tester.pumpAndSettle();
  80 +
  81 + expect(find.byType(SecondScreen), findsOneWidget);
  82 + });
  83 +
  84 + testWidgets("Get.offAll smoke test", (tester) async {
  85 + await tester.pumpWidget(
  86 + Wrapper(child: Container()),
  87 + );
  88 +
  89 + Get.to(FirstScreen());
  90 +
  91 + await tester.pumpAndSettle();
  92 +
  93 + expect(find.byType(FirstScreen), findsOneWidget);
  94 +
  95 + Get.to(SecondScreen());
  96 +
  97 + await tester.pumpAndSettle();
  98 +
  99 + expect(find.byType(SecondScreen), findsOneWidget);
  100 +
  101 + Get.offAll(ThirdScreen());
  102 +
  103 + await tester.pumpAndSettle();
  104 +
  105 + expect(find.byType(ThirdScreen), findsOneWidget);
  106 + });
  107 +
  108 + testWidgets("Get.offAllNamed smoke test", (tester) async {
  109 + await tester.pumpWidget(
  110 + Wrapper(
  111 + initialRoute: '/',
  112 + namedRoutes: {
  113 + '/': GetRoute(page: Container()),
  114 + '/first': GetRoute(page: FirstScreen()),
  115 + '/second': GetRoute(page: SecondScreen()),
  116 + '/third': GetRoute(page: ThirdScreen())
  117 + },
  118 + child: Container(),
  119 + ),
  120 + );
  121 +
  122 + Get.toNamed('/first');
  123 +
  124 + await tester.pumpAndSettle();
  125 +
  126 + expect(find.byType(FirstScreen), findsOneWidget);
  127 +
  128 + Get.toNamed('/second');
  129 +
  130 + await tester.pumpAndSettle();
  131 +
  132 + expect(find.byType(SecondScreen), findsOneWidget);
  133 +
  134 + Get.offAllNamed('/third');
  135 +
  136 + await tester.pumpAndSettle();
  137 +
  138 + expect(find.byType(ThirdScreen), findsOneWidget);
  139 + });
  140 +
  141 + testWidgets("Get.offAndToNamed smoke test", (tester) async {
  142 + await tester.pumpWidget(
  143 + Wrapper(
  144 + initialRoute: '/',
  145 + namedRoutes: {
  146 + '/': GetRoute(page: Container()),
  147 + '/first': GetRoute(page: FirstScreen()),
  148 + '/second': GetRoute(page: SecondScreen()),
  149 + '/third': GetRoute(page: ThirdScreen())
  150 + },
  151 + child: Container(),
  152 + ),
  153 + );
  154 +
  155 + Get.toNamed('/first');
  156 +
  157 + await tester.pumpAndSettle();
  158 +
  159 + expect(find.byType(FirstScreen), findsOneWidget);
  160 +
  161 + Get.offAndToNamed('/second');
  162 +
  163 + await tester.pumpAndSettle();
  164 +
  165 + expect(find.byType(SecondScreen), findsOneWidget);
  166 + });
  167 +
  168 + testWidgets("Get.offUntil smoke test", (tester) async {
  169 + await tester.pumpWidget(
  170 + Wrapper(
  171 + child: Container(),
  172 + ),
  173 + );
  174 +
  175 + Get.to(FirstScreen());
  176 +
  177 + await tester.pumpAndSettle();
  178 +
  179 + expect(find.byType(FirstScreen), findsOneWidget);
  180 +
  181 + Get.offUntil(
  182 + MaterialPageRoute(builder: (BuildContext context) => SecondScreen()),
  183 + ModalRoute.withName('/'));
  184 +
  185 + await tester.pumpAndSettle();
  186 +
  187 + expect(find.byType(SecondScreen), findsOneWidget);
  188 + });
  189 +
  190 + testWidgets("Get.offNamedUntil smoke test", (tester) async {
  191 + await tester.pumpWidget(
  192 + Wrapper(
  193 + initialRoute: '/',
  194 + namedRoutes: {
  195 + '/': GetRoute(page: Container()),
  196 + '/first': GetRoute(page: FirstScreen()),
  197 + '/second': GetRoute(page: SecondScreen()),
  198 + '/third': GetRoute(page: ThirdScreen())
  199 + },
  200 + child: Container(),
  201 + ),
  202 + );
  203 +
  204 + Get.toNamed('/first');
  205 +
  206 + await tester.pumpAndSettle();
  207 +
  208 + expect(find.byType(FirstScreen), findsOneWidget);
  209 +
  210 + Get.offNamedUntil('/first', ModalRoute.withName('/'));
  211 +
  212 + await tester.pumpAndSettle();
  213 +
  214 + expect(find.byType(FirstScreen), findsOneWidget);
  215 + });
  216 +
  217 + testWidgets("Get.back smoke test", (tester) async {
  218 + await tester.pumpWidget(
  219 + Wrapper(child: Container()),
  220 + );
  221 +
  222 + Get.to(FirstScreen());
  223 +
  224 + await tester.pumpAndSettle();
  225 +
  226 + expect(find.byType(FirstScreen), findsOneWidget);
  227 +
  228 + Get.to(SecondScreen());
  229 +
  230 + await tester.pumpAndSettle();
  231 +
  232 + expect(find.byType(SecondScreen), findsOneWidget);
  233 +
  234 + Get.back();
  235 +
  236 + await tester.pumpAndSettle();
  237 +
  238 + expect(find.byType(FirstScreen), findsOneWidget);
  239 + });
  240 +
  241 + testWidgets("Get.defaultTransition smoke test", (tester) async {
  242 + await tester.pumpWidget(
  243 + Wrapper(
  244 + child: Container(),
  245 + defaultTransition: Transition.cupertino,
  246 + ),
  247 + );
  248 +
  249 + Get.to(FirstScreen());
  250 +
  251 + await tester.pumpAndSettle();
  252 +
  253 + expect(find.byType(FirstScreen), findsOneWidget);
  254 +
  255 + await tester.pumpWidget(
  256 + Wrapper(
  257 + child: Container(),
  258 + defaultTransition: Transition.downToUp,
  259 + ),
  260 + );
  261 +
  262 + Get.to(FirstScreen());
  263 +
  264 + await tester.pumpAndSettle();
  265 +
  266 + expect(find.byType(FirstScreen), findsOneWidget);
  267 +
  268 + await tester.pumpWidget(
  269 + Wrapper(
  270 + child: Container(),
  271 + defaultTransition: Transition.fade,
  272 + ),
  273 + );
  274 +
  275 + Get.to(FirstScreen());
  276 +
  277 + await tester.pumpAndSettle();
  278 +
  279 + expect(find.byType(FirstScreen), findsOneWidget);
  280 +
  281 + await tester.pumpWidget(
  282 + Wrapper(
  283 + child: Container(),
  284 + defaultTransition: Transition.leftToRight,
  285 + ),
  286 + );
  287 +
  288 + Get.to(FirstScreen());
  289 +
  290 + await tester.pumpAndSettle();
  291 +
  292 + expect(find.byType(FirstScreen), findsOneWidget);
  293 +
  294 + await tester.pumpWidget(
  295 + Wrapper(
  296 + child: Container(),
  297 + defaultTransition: Transition.leftToRightWithFade,
  298 + ),
  299 + );
  300 +
  301 + Get.to(FirstScreen());
  302 +
  303 + await tester.pumpAndSettle();
  304 +
  305 + expect(find.byType(FirstScreen), findsOneWidget);
  306 +
  307 + await tester.pumpWidget(
  308 + Wrapper(
  309 + child: Container(),
  310 + defaultTransition: Transition.rightToLeft,
  311 + ),
  312 + );
  313 +
  314 + Get.to(FirstScreen());
  315 +
  316 + await tester.pumpAndSettle();
  317 +
  318 + expect(find.byType(FirstScreen), findsOneWidget);
  319 +
  320 + await tester.pumpWidget(
  321 + Wrapper(
  322 + child: Container(),
  323 + defaultTransition: Transition.rightToLeftWithFade,
  324 + ),
  325 + );
  326 +
  327 + Get.to(FirstScreen());
  328 +
  329 + await tester.pumpAndSettle();
  330 +
  331 + expect(find.byType(FirstScreen), findsOneWidget);
  332 + });
  333 +}
  334 +
  335 +class FirstScreen extends StatelessWidget {
  336 + const FirstScreen({Key key}) : super(key: key);
  337 +
  338 + @override
  339 + Widget build(BuildContext context) {
  340 + return Container();
  341 + }
  342 +}
  343 +
  344 +class SecondScreen extends StatelessWidget {
  345 + const SecondScreen({Key key}) : super(key: key);
  346 +
  347 + @override
  348 + Widget build(BuildContext context) {
  349 + return Container();
  350 + }
  351 +}
  352 +
  353 +class ThirdScreen extends StatelessWidget {
  354 + const ThirdScreen({Key key}) : super(key: key);
  355 +
  356 + @override
  357 + Widget build(BuildContext context) {
  358 + return Container();
  359 + }
  360 +}