Jaime Blasco
Committed by GitHub

test: route tests (#268)

* test: route tests

* fix: format files
@@ -13,7 +13,7 @@ jobs: @@ -13,7 +13,7 @@ jobs:
13 uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 13 uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
14 with: 14 with:
15 working_directory: sheet 15 working_directory: sheet
16 - min_coverage: 70 # Working to reach 100% XD 16 + min_coverage: 75 # Working to reach 100% XD
17 17
18 pana: 18 pana:
19 uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/pana.yml@v1 19 uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/pana.yml@v1
1 export 'src/route/base_route_extended.dart'; 1 export 'src/route/base_route_extended.dart';
2 -export 'src/route/cupertino/sheet_route.dart'; 2 +export 'src/route/cupertino/sheet_route.dart'
  3 + hide CupertinoSheetBottomRouteTransition;
3 export 'src/route/delegated_transitions_route.dart'; 4 export 'src/route/delegated_transitions_route.dart';
4 export 'src/route/sheet_route.dart'; 5 export 'src/route/sheet_route.dart';
@@ -67,15 +67,13 @@ class _PageBasedMaterialPageRoute<T> extends MaterialExtendedPageRoute<T> { @@ -67,15 +67,13 @@ class _PageBasedMaterialPageRoute<T> extends MaterialExtendedPageRoute<T> {
67 }) : super( 67 }) : super(
68 settings: page, 68 settings: page,
69 builder: (BuildContext context) => page.child, 69 builder: (BuildContext context) => page.child,
70 - ) {  
71 - assert(opaque);  
72 - } 70 + );
73 71
74 MaterialExtendedPage<T> get _page => settings as MaterialExtendedPage<T>; 72 MaterialExtendedPage<T> get _page => settings as MaterialExtendedPage<T>;
75 73
76 @override 74 @override
77 Widget buildContent(BuildContext context) { 75 Widget buildContent(BuildContext context) {
78 - return _page.child; 76 + return builder(context);
79 } 77 }
80 78
81 @override 79 @override
@@ -143,14 +141,17 @@ class CupertinoExtendedPage<T> extends Page<T> { @@ -143,14 +141,17 @@ class CupertinoExtendedPage<T> extends Page<T> {
143 class _PageBasedCupertinoPageRoute<T> extends CupertinoExtendedPageRoute<T> { 141 class _PageBasedCupertinoPageRoute<T> extends CupertinoExtendedPageRoute<T> {
144 _PageBasedCupertinoPageRoute({ 142 _PageBasedCupertinoPageRoute({
145 required CupertinoExtendedPage<T> page, 143 required CupertinoExtendedPage<T> page,
146 - }) : super(builder: (BuildContext context) => page.child) {  
147 - assert(opaque);  
148 - } 144 + }) : super(
  145 + settings: page,
  146 + builder: (BuildContext context) => page.child,
  147 + );
149 148
150 CupertinoExtendedPage<T> get _page => settings as CupertinoExtendedPage<T>; 149 CupertinoExtendedPage<T> get _page => settings as CupertinoExtendedPage<T>;
151 150
152 @override 151 @override
153 - Widget buildContent(BuildContext context) => _page.child; 152 + Widget buildContent(BuildContext context) {
  153 + return builder(context);
  154 + }
154 155
155 @override 156 @override
156 String? get title => _page.title; 157 String? get title => _page.title;
@@ -214,7 +214,7 @@ class CupertinoSheetRoute<T> extends SheetRoute<T> { @@ -214,7 +214,7 @@ class CupertinoSheetRoute<T> extends SheetRoute<T> {
214 curve: Interval(0, initialExtent, curve: Curves.linear), 214 curve: Interval(0, initialExtent, curve: Curves.linear),
215 ); 215 );
216 216
217 - return _CupertinoSheetBottomRouteTransition( 217 + return CupertinoSheetBottomRouteTransition(
218 body: child, 218 body: child,
219 sheetAnimation: delayAnimation, 219 sheetAnimation: delayAnimation,
220 secondaryAnimation: secondaryAnimation, 220 secondaryAnimation: secondaryAnimation,
@@ -223,8 +223,9 @@ class CupertinoSheetRoute<T> extends SheetRoute<T> { @@ -223,8 +223,9 @@ class CupertinoSheetRoute<T> extends SheetRoute<T> {
223 } 223 }
224 224
225 /// Animation for previous route when a [CupertinoSheetRoute] enters/exits 225 /// Animation for previous route when a [CupertinoSheetRoute] enters/exits
226 -class _CupertinoSheetBottomRouteTransition extends StatelessWidget {  
227 - const _CupertinoSheetBottomRouteTransition({ 226 +@visibleForTesting
  227 +class CupertinoSheetBottomRouteTransition extends StatelessWidget {
  228 + const CupertinoSheetBottomRouteTransition({
228 Key? key, 229 Key? key,
229 required this.sheetAnimation, 230 required this.sheetAnimation,
230 required this.secondaryAnimation, 231 required this.secondaryAnimation,
@@ -129,9 +129,8 @@ class SheetRoute<T> extends PageRoute<T> with DelegatedTransitionsRoute<T> { @@ -129,9 +129,8 @@ class SheetRoute<T> extends PageRoute<T> with DelegatedTransitionsRoute<T> {
129 @override 129 @override
130 AnimationController createAnimationController() { 130 AnimationController createAnimationController() {
131 assert(_routeAnimationController == null); 131 assert(_routeAnimationController == null);
132 - assert(navigator?.overlay != null);  
133 _routeAnimationController = AnimationController( 132 _routeAnimationController = AnimationController(
134 - vsync: navigator!.overlay!, 133 + vsync: navigator!,
135 duration: transitionDuration, 134 duration: transitionDuration,
136 ); 135 );
137 return _routeAnimationController!; 136 return _routeAnimationController!;
@@ -6,6 +6,13 @@ const Key _childKey = Key('_sheet_child'); @@ -6,6 +6,13 @@ const Key _childKey = Key('_sheet_child');
6 6
7 Finder findSheet() => find.byKey(_childKey); 7 Finder findSheet() => find.byKey(_childKey);
8 8
  9 +extension BuildContextWidgetTester on WidgetTester {
  10 + /// Gets context that can be used to push a new route into the root navigator
  11 + /// Useful when we need to test bottom sheets or alerts
  12 + BuildContext get contextForRootNavigator =>
  13 + firstElement(find.byType(Navigator));
  14 +}
  15 +
9 extension SheetTester on WidgetTester { 16 extension SheetTester on WidgetTester {
10 Future<void> pumpApp(Widget sheet, {VoidCallback? onButtonPressed}) async { 17 Future<void> pumpApp(Widget sheet, {VoidCallback? onButtonPressed}) async {
11 await pumpWidget( 18 await pumpWidget(
@@ -41,28 +48,28 @@ extension SheetTester on WidgetTester { @@ -41,28 +48,28 @@ extension SheetTester on WidgetTester {
41 } 48 }
42 49
43 double getSheetTop() { 50 double getSheetTop() {
44 - final Offset offset = getTopLeft(find.byKey(_childKey)); 51 + final Offset offset = getTopLeft(findSheet());
45 return offset.dy; 52 return offset.dy;
46 } 53 }
47 54
48 double getSheetExtent() { 55 double getSheetExtent() {
49 final Rect rootRect = getRect(find.byType(Sheet)); 56 final Rect rootRect = getRect(find.byType(Sheet));
50 - final Offset offset = getTopLeft(find.byKey(_childKey)); 57 + final Offset offset = getTopLeft(findSheet());
51 return rootRect.bottom - offset.dy; 58 return rootRect.bottom - offset.dy;
52 } 59 }
53 60
54 SheetController getSheetController() { 61 SheetController getSheetController() {
55 - final BuildContext context = element(find.byKey(_childKey)); 62 + final BuildContext context = element(findSheet());
56 return Sheet.of(context)!.controller; 63 return Sheet.of(context)!.controller;
57 } 64 }
58 65
59 SheetPosition getSheetPosition() { 66 SheetPosition getSheetPosition() {
60 - final BuildContext context = element(find.byKey(_childKey)); 67 + final BuildContext context = element(findSheet());
61 return Sheet.of(context)!.position; 68 return Sheet.of(context)!.position;
62 } 69 }
63 70
64 double getSheetHeight() { 71 double getSheetHeight() {
65 - final Size rect = getSize(find.byKey(_childKey)); 72 + final Size rect = getSize(findSheet());
66 return rect.height; 73 return rect.height;
67 } 74 }
68 75
  1 +import 'package:flutter/cupertino.dart';
  2 +import 'package:flutter/material.dart';
  3 +import 'package:flutter_test/flutter_test.dart';
  4 +import 'package:sheet/route.dart';
  5 +
  6 +import '../../helpers.dart';
  7 +
  8 +void main() {
  9 + group('MaterialExtendedPageRoute', () {
  10 + testWidgets('renders', (WidgetTester tester) async {
  11 + await tester.pumpApp(SizedBox());
  12 +
  13 + Navigator.of(tester.contextForRootNavigator).push(
  14 + MaterialExtendedPageRoute(builder: (context) => Text('child')),
  15 + );
  16 + await tester.pumpAndSettle();
  17 + expect(find.text('child'), findsOneWidget);
  18 + });
  19 +
  20 + test('is a PreviousSheetRouteMixin', () {
  21 + expect(
  22 + MaterialExtendedPageRoute(builder: (context) => Text('child')),
  23 + isA<PreviousSheetRouteMixin>(),
  24 + );
  25 + });
  26 +
  27 + test('is a DelegatedTransitionsRoute', () {
  28 + expect(
  29 + MaterialExtendedPageRoute(builder: (context) => Text('child')),
  30 + isA<DelegatedTransitionsRoute>(),
  31 + );
  32 + });
  33 +
  34 + test('is a MaterialPageRoute', () {
  35 + expect(
  36 + MaterialExtendedPageRoute(builder: (context) => Text('child')),
  37 + isA<MaterialPageRoute>(),
  38 + );
  39 + });
  40 + });
  41 +
  42 + group('MaterialExtendedPage', () {
  43 + testWidgets('renders', (WidgetTester tester) async {
  44 + await tester.pumpWidget(MaterialApp(
  45 + builder: (context, child) {
  46 + return Navigator(
  47 + pages: [
  48 + MaterialExtendedPage(child: Text('child')),
  49 + ],
  50 + onPopPage: (route, result) => false,
  51 + );
  52 + },
  53 + ));
  54 + await tester.pumpAndSettle();
  55 + expect(find.text('child'), findsOneWidget);
  56 + });
  57 +
  58 + testWidgets('route is a MaterialExtendedPageRoute',
  59 + (WidgetTester tester) async {
  60 + await tester.pumpWidget(MaterialApp(
  61 + builder: (context, child) {
  62 + return Navigator(
  63 + pages: [MaterialPage(child: SizedBox())],
  64 + onPopPage: (route, result) => false,
  65 + );
  66 + },
  67 + ));
  68 + expect(
  69 + MaterialExtendedPage(child: Text('child'))
  70 + .createRoute(tester.contextForRootNavigator),
  71 + isA<MaterialExtendedPageRoute>(),
  72 + );
  73 + });
  74 +
  75 + testWidgets('params are passed to route', (WidgetTester tester) async {
  76 + await tester.pumpWidget(MaterialApp(
  77 + builder: (context, child) {
  78 + return Navigator(
  79 + pages: [MaterialPage(child: SizedBox())],
  80 + onPopPage: (route, result) => false,
  81 + );
  82 + },
  83 + ));
  84 + final page = MaterialExtendedPage(
  85 + child: Text('child'),
  86 + fullscreenDialog: true,
  87 + maintainState: false,
  88 + );
  89 + expect(
  90 + page.createRoute(tester.contextForRootNavigator),
  91 + isA<MaterialExtendedPageRoute>()
  92 + .having(
  93 + (p) => p.fullscreenDialog,
  94 + 'fullscreenDialog',
  95 + isTrue,
  96 + )
  97 + .having(
  98 + (p) => p.settings,
  99 + 'settings',
  100 + page,
  101 + )
  102 + .having(
  103 + (p) => p.maintainState,
  104 + 'maintainState',
  105 + isFalse,
  106 + ),
  107 + );
  108 + });
  109 + });
  110 + group('CupertinoExtendedPageRoute', () {
  111 + testWidgets('renders', (WidgetTester tester) async {
  112 + await tester.pumpApp(SizedBox());
  113 +
  114 + Navigator.of(tester.contextForRootNavigator).push(
  115 + CupertinoExtendedPageRoute(builder: (context) => Text('child')),
  116 + );
  117 + await tester.pumpAndSettle();
  118 + expect(find.text('child'), findsOneWidget);
  119 + });
  120 +
  121 + test('is a PreviousSheetRouteMixin', () {
  122 + expect(
  123 + CupertinoExtendedPageRoute(builder: (context) => Text('child')),
  124 + isA<PreviousSheetRouteMixin>(),
  125 + );
  126 + });
  127 +
  128 + test('is a DelegatedTransitionsRoute', () {
  129 + expect(
  130 + CupertinoExtendedPageRoute(builder: (context) => Text('child')),
  131 + isA<DelegatedTransitionsRoute>(),
  132 + );
  133 + });
  134 +
  135 + test('is a CupertinoPageRoute', () {
  136 + expect(
  137 + CupertinoExtendedPageRoute(builder: (context) => Text('child')),
  138 + isA<CupertinoPageRoute>(),
  139 + );
  140 + });
  141 + });
  142 +
  143 + group('CupertinoExtendedPage', () {
  144 + testWidgets('renders', (WidgetTester tester) async {
  145 + await tester.pumpWidget(MaterialApp(
  146 + builder: (context, child) {
  147 + return Navigator(
  148 + pages: [
  149 + CupertinoExtendedPage(child: Text('child')),
  150 + ],
  151 + onPopPage: (route, result) => false,
  152 + );
  153 + },
  154 + ));
  155 + await tester.pumpAndSettle();
  156 + expect(find.text('child'), findsOneWidget);
  157 + });
  158 +
  159 + testWidgets('route is a CupertinoExtendedPageRoute',
  160 + (WidgetTester tester) async {
  161 + await tester.pumpWidget(MaterialApp(
  162 + builder: (context, child) {
  163 + return Navigator(
  164 + pages: [MaterialPage(child: SizedBox())],
  165 + onPopPage: (route, result) => false,
  166 + );
  167 + },
  168 + ));
  169 + expect(
  170 + CupertinoExtendedPage(child: Text('child'))
  171 + .createRoute(tester.contextForRootNavigator),
  172 + isA<CupertinoExtendedPageRoute>(),
  173 + );
  174 + });
  175 +
  176 + testWidgets('params are passed to route', (WidgetTester tester) async {
  177 + await tester.pumpWidget(MaterialApp(
  178 + builder: (context, child) {
  179 + return Navigator(
  180 + pages: [MaterialPage(child: SizedBox())],
  181 + onPopPage: (route, result) => false,
  182 + );
  183 + },
  184 + ));
  185 + final page = CupertinoExtendedPage(
  186 + child: Text('child'),
  187 + title: 'Title',
  188 + fullscreenDialog: true,
  189 + maintainState: false,
  190 + );
  191 + expect(
  192 + page.createRoute(tester.contextForRootNavigator),
  193 + isA<CupertinoExtendedPageRoute>()
  194 + .having(
  195 + (p) => p.fullscreenDialog,
  196 + 'fullscreenDialog',
  197 + isTrue,
  198 + )
  199 + .having(
  200 + (p) => p.settings,
  201 + 'settings',
  202 + page,
  203 + )
  204 + .having(
  205 + (p) => p.maintainState,
  206 + 'maintainState',
  207 + isFalse,
  208 + )
  209 + .having(
  210 + (p) => p.title,
  211 + 'title',
  212 + equals('Title'),
  213 + ),
  214 + );
  215 + });
  216 + });
  217 +}
  1 +import 'package:flutter/material.dart';
  2 +import 'package:flutter_test/flutter_test.dart';
  3 +import 'package:sheet/route.dart';
  4 +import 'package:sheet/src/route/cupertino/sheet_route.dart';
  5 +
  6 +import '../../../helpers.dart';
  7 +
  8 +void main() {
  9 + group('CupertinoSheetRoute', () {
  10 + testWidgets('renders', (WidgetTester tester) async {
  11 + await tester.pumpApp(SizedBox());
  12 +
  13 + Navigator.of(tester.contextForRootNavigator).push(
  14 + CupertinoSheetRoute(builder: (context) => Text('Sheet')),
  15 + );
  16 + await tester.pumpAndSettle();
  17 + expect(findSheet(), findsOneWidget);
  18 + expect(find.text('Sheet'), findsOneWidget);
  19 + });
  20 +
  21 + testWidgets('animates previous route when using MaterialExtendedPageRoute',
  22 + (WidgetTester tester) async {
  23 + await tester.pumpApp(SizedBox());
  24 + final controller = Navigator.of(tester.contextForRootNavigator);
  25 + controller.push(
  26 + MaterialExtendedPageRoute(builder: (context) => SizedBox()),
  27 + );
  28 + await tester.pumpAndSettle();
  29 + controller.push(
  30 + CupertinoSheetRoute(builder: (context) => Text('Sheet')),
  31 + );
  32 + await tester.pumpAndSettle();
  33 + expect(find.byType(CupertinoSheetBottomRouteTransition), findsOneWidget);
  34 + });
  35 +
  36 + testWidgets('animates previous route when using CupertinoExtendedPageRoute',
  37 + (WidgetTester tester) async {
  38 + await tester.pumpApp(SizedBox());
  39 + final controller = Navigator.of(tester.contextForRootNavigator);
  40 + controller.push(
  41 + CupertinoExtendedPageRoute(builder: (context) => SizedBox()),
  42 + );
  43 + await tester.pumpAndSettle();
  44 + controller.push(
  45 + CupertinoSheetRoute(builder: (context) => Text('Sheet')),
  46 + );
  47 + await tester.pumpAndSettle();
  48 + expect(find.byType(CupertinoSheetBottomRouteTransition), findsOneWidget);
  49 + });
  50 + });
  51 +
  52 + group('CupertinoSheetPage', () {
  53 + testWidgets('renders', (WidgetTester tester) async {
  54 + await tester.pumpWidget(MaterialApp(
  55 + builder: (context, child) {
  56 + return Navigator(
  57 + pages: [
  58 + MaterialPage(child: SizedBox()),
  59 + CupertinoSheetPage(child: Text('Sheet')),
  60 + ],
  61 + onPopPage: (route, result) => false,
  62 + );
  63 + },
  64 + ));
  65 + await tester.pumpAndSettle();
  66 + expect(findSheet(), findsOneWidget);
  67 + expect(find.text('Sheet'), findsOneWidget);
  68 + });
  69 +
  70 + testWidgets('animates previous route when using MaterialExtendedPage',
  71 + (WidgetTester tester) async {
  72 + await tester.pumpWidget(MaterialApp(
  73 + builder: (context, child) {
  74 + return Navigator(
  75 + pages: [
  76 + MaterialExtendedPage(child: SizedBox()),
  77 + CupertinoSheetPage(child: Text('Sheet')),
  78 + ],
  79 + onPopPage: (route, result) => false,
  80 + );
  81 + },
  82 + ));
  83 + await tester.pumpAndSettle();
  84 + expect(find.byType(CupertinoSheetBottomRouteTransition), findsOneWidget);
  85 + });
  86 +
  87 + testWidgets('animates previous route when using CupertinoExtendedPage',
  88 + (WidgetTester tester) async {
  89 + await tester.pumpWidget(MaterialApp(
  90 + builder: (context, child) {
  91 + return Navigator(
  92 + pages: [
  93 + CupertinoExtendedPage(child: SizedBox()),
  94 + CupertinoSheetPage(child: Text('Sheet')),
  95 + ],
  96 + onPopPage: (route, result) => false,
  97 + );
  98 + },
  99 + ));
  100 + await tester.pumpAndSettle();
  101 + expect(find.byType(CupertinoSheetBottomRouteTransition), findsOneWidget);
  102 + });
  103 + });
  104 +}
  1 +import 'package:flutter/material.dart';
  2 +import 'package:flutter_test/flutter_test.dart';
  3 +import 'package:sheet/route.dart';
  4 +
  5 +import '../../helpers.dart';
  6 +
  7 +void main() {
  8 + group('SheetRoute', () {
  9 + testWidgets('renders', (WidgetTester tester) async {
  10 + await tester.pumpApp(SizedBox());
  11 +
  12 + Navigator.of(tester.contextForRootNavigator).push(
  13 + SheetRoute(builder: (context) => Text('Sheet')),
  14 + );
  15 + await tester.pumpAndSettle();
  16 + expect(findSheet(), findsOneWidget);
  17 + expect(find.text('Sheet'), findsOneWidget);
  18 + });
  19 + });
  20 +
  21 + group('SheetPage', () {
  22 + testWidgets('renders', (WidgetTester tester) async {
  23 + await tester.pumpWidget(MaterialApp(
  24 + builder: (context, child) {
  25 + return Navigator(
  26 + pages: [
  27 + MaterialPage(child: SizedBox()),
  28 + SheetPage(child: Text('Sheet')),
  29 + ],
  30 + onPopPage: (route, result) => false,
  31 + );
  32 + },
  33 + ));
  34 + await tester.pumpAndSettle();
  35 + expect(findSheet(), findsOneWidget);
  36 + expect(find.text('Sheet'), findsOneWidget);
  37 + });
  38 + });
  39 +}
@@ -2,47 +2,41 @@ import 'package:flutter/material.dart'; @@ -2,47 +2,41 @@ import 'package:flutter/material.dart';
2 import 'package:flutter_test/flutter_test.dart'; 2 import 'package:flutter_test/flutter_test.dart';
3 import 'package:sheet/sheet.dart'; 3 import 'package:sheet/sheet.dart';
4 4
5 -import '../helpers.dart'; 5 +import '../../../helpers.dart';
6 6
7 void main() { 7 void main() {
8 group('SheetController.animation', () { 8 group('SheetController.animation', () {
9 testWidgets('is 0 when starts in minExtent', (tester) async { 9 testWidgets('is 0 when starts in minExtent', (tester) async {
10 - await tester.pumpWidget(  
11 - MaterialApp(  
12 - home: Sheet(  
13 - minExtent: 100,  
14 - maxExtent: 400,  
15 - initialExtent: 100,  
16 - child: SizedBox(height: 400),  
17 - ), 10 + await tester.pumpApp(
  11 + Sheet(
  12 + minExtent: 100,
  13 + maxExtent: 400,
  14 + initialExtent: 100,
  15 + child: SizedBox(height: 400),
18 ), 16 ),
19 ); 17 );
20 expect(tester.getSheetController().animation.value, 0); 18 expect(tester.getSheetController().animation.value, 0);
21 }); 19 });
22 20
23 testWidgets('is 1 when starts in maxExtent', (tester) async { 21 testWidgets('is 1 when starts in maxExtent', (tester) async {
24 - await tester.pumpWidget(  
25 - MaterialApp(  
26 - home: Sheet(  
27 - minExtent: 100,  
28 - maxExtent: 400,  
29 - initialExtent: 400,  
30 - child: SizedBox(height: 400),  
31 - ), 22 + await tester.pumpApp(
  23 + Sheet(
  24 + minExtent: 100,
  25 + maxExtent: 400,
  26 + initialExtent: 400,
  27 + child: SizedBox(height: 400),
32 ), 28 ),
33 ); 29 );
34 expect(tester.getSheetController().animation.value, 1); 30 expect(tester.getSheetController().animation.value, 1);
35 }); 31 });
36 testWidgets('is 0.5 when is between minExtent and maxExtent', 32 testWidgets('is 0.5 when is between minExtent and maxExtent',
37 (tester) async { 33 (tester) async {
38 - await tester.pumpWidget(  
39 - MaterialApp(  
40 - home: Sheet(  
41 - minExtent: 100,  
42 - maxExtent: 300,  
43 - initialExtent: 200,  
44 - child: SizedBox(height: 300),  
45 - ), 34 + await tester.pumpApp(
  35 + Sheet(
  36 + minExtent: 100,
  37 + maxExtent: 300,
  38 + initialExtent: 200,
  39 + child: SizedBox(height: 300),
46 ), 40 ),
47 ); 41 );
48 42
@@ -50,28 +44,24 @@ void main() { @@ -50,28 +44,24 @@ void main() {
50 }); 44 });
51 45
52 testWidgets('is 1 when minExtent equals maxExtent', (tester) async { 46 testWidgets('is 1 when minExtent equals maxExtent', (tester) async {
53 - await tester.pumpWidget(  
54 - MaterialApp(  
55 - home: Sheet(  
56 - minExtent: 100,  
57 - maxExtent: 100,  
58 - child: SizedBox(height: 100),  
59 - ), 47 + await tester.pumpApp(
  48 + Sheet(
  49 + minExtent: 100,
  50 + maxExtent: 100,
  51 + child: SizedBox(height: 100),
60 ), 52 ),
61 ); 53 );
62 expect(tester.getSheetController().animation.value, 1); 54 expect(tester.getSheetController().animation.value, 1);
63 }); 55 });
64 56
65 testWidgets('updates to 0 when it goes to minExtent', (tester) async { 57 testWidgets('updates to 0 when it goes to minExtent', (tester) async {
66 - await tester.pumpWidget(  
67 - MaterialApp(  
68 - home: Sheet(  
69 - minExtent: 100,  
70 - maxExtent: 400,  
71 - initialExtent: 400,  
72 - fit: SheetFit.expand,  
73 - child: SizedBox(),  
74 - ), 58 + await tester.pumpApp(
  59 + Sheet(
  60 + minExtent: 100,
  61 + maxExtent: 400,
  62 + initialExtent: 400,
  63 + fit: SheetFit.expand,
  64 + child: SizedBox(),
75 ), 65 ),
76 ); 66 );
77 expect(tester.getSheetController().animation.value, 1); 67 expect(tester.getSheetController().animation.value, 1);
@@ -81,14 +71,12 @@ void main() { @@ -81,14 +71,12 @@ void main() {
81 }); 71 });
82 72
83 testWidgets('updates to 1 when it goes to maxExtent', (tester) async { 73 testWidgets('updates to 1 when it goes to maxExtent', (tester) async {
84 - await tester.pumpWidget(  
85 - MaterialApp(  
86 - home: Sheet(  
87 - minExtent: 100,  
88 - maxExtent: 400,  
89 - initialExtent: 100,  
90 - child: SizedBox(height: 400),  
91 - ), 74 + await tester.pumpApp(
  75 + Sheet(
  76 + minExtent: 100,
  77 + maxExtent: 400,
  78 + initialExtent: 100,
  79 + child: SizedBox(height: 400),
92 ), 80 ),
93 ); 81 );
94 expect(tester.getSheetController().animation.value, 0); 82 expect(tester.getSheetController().animation.value, 0);
@@ -97,14 +85,12 @@ void main() { @@ -97,14 +85,12 @@ void main() {
97 }); 85 });
98 86
99 testWidgets('updates linearly', (tester) async { 87 testWidgets('updates linearly', (tester) async {
100 - await tester.pumpWidget(  
101 - MaterialApp(  
102 - home: Sheet(  
103 - minExtent: 100,  
104 - maxExtent: 300,  
105 - initialExtent: 100,  
106 - child: SizedBox(height: 300),  
107 - ), 88 + await tester.pumpApp(
  89 + Sheet(
  90 + minExtent: 100,
  91 + maxExtent: 300,
  92 + initialExtent: 100,
  93 + child: SizedBox(height: 300),
108 ), 94 ),
109 ); 95 );
110 tester.getSheetController().relativeJumpTo(0.5); 96 tester.getSheetController().relativeJumpTo(0.5);
@@ -4,8 +4,8 @@ import 'package:flutter/material.dart'; @@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
4 import 'package:flutter_test/flutter_test.dart'; 4 import 'package:flutter_test/flutter_test.dart';
5 import 'package:sheet/sheet.dart'; 5 import 'package:sheet/sheet.dart';
6 6
7 -import '../helpers.dart';  
8 -import '../screen_size_test.dart'; 7 +import '../../../helpers.dart';
  8 +import '../../../screen_size_test.dart';
9 9
10 void main() { 10 void main() {
11 group('bounce', () { 11 group('bounce', () {
@@ -4,8 +4,8 @@ import 'package:flutter/material.dart'; @@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
4 import 'package:flutter_test/flutter_test.dart'; 4 import 'package:flutter_test/flutter_test.dart';
5 import 'package:sheet/sheet.dart'; 5 import 'package:sheet/sheet.dart';
6 6
7 -import '../helpers.dart';  
8 -import '../screen_size_test.dart'; 7 +import '../../../helpers.dart';
  8 +import '../../../screen_size_test.dart';
9 9
10 void main() { 10 void main() {
11 group('fit', () { 11 group('fit', () {
@@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; @@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
2 import 'package:flutter_test/flutter_test.dart'; 2 import 'package:flutter_test/flutter_test.dart';
3 import 'package:sheet/sheet.dart'; 3 import 'package:sheet/sheet.dart';
4 4
5 -import '../helpers.dart';  
6 -import '../screen_size_test.dart'; 5 +import '../../../helpers.dart';
  6 +import '../../../screen_size_test.dart';
7 7
8 void main() { 8 void main() {
9 group('Initial extent', () { 9 group('Initial extent', () {
@@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; @@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
2 import 'package:flutter_test/flutter_test.dart'; 2 import 'package:flutter_test/flutter_test.dart';
3 import 'package:sheet/sheet.dart'; 3 import 'package:sheet/sheet.dart';
4 4
5 -import '../helpers.dart';  
6 -import '../screen_size_test.dart'; 5 +import '../../../helpers.dart';
  6 +import '../../../screen_size_test.dart';
7 7
8 void main() { 8 void main() {
9 group('Sheet linear drags', () { 9 group('Sheet linear drags', () {
@@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; @@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
2 import 'package:flutter_test/flutter_test.dart'; 2 import 'package:flutter_test/flutter_test.dart';
3 import 'package:sheet/sheet.dart'; 3 import 'package:sheet/sheet.dart';
4 4
5 -import '../helpers.dart';  
6 -import '../screen_size_test.dart'; 5 +import '../../../helpers.dart';
  6 +import '../../../screen_size_test.dart';
7 7
8 void main() { 8 void main() {
9 group('Sheet with resizable', () { 9 group('Sheet with resizable', () {
@@ -4,8 +4,8 @@ import 'package:flutter/material.dart'; @@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
4 import 'package:flutter_test/flutter_test.dart'; 4 import 'package:flutter_test/flutter_test.dart';
5 import 'package:sheet/sheet.dart'; 5 import 'package:sheet/sheet.dart';
6 6
7 -import '../helpers.dart';  
8 -import '../screen_size_test.dart'; 7 +import '../../../helpers.dart';
  8 +import '../../../screen_size_test.dart';
9 9
10 void main() { 10 void main() {
11 group('SheetController', () { 11 group('SheetController', () {
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; @@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
2 import 'package:flutter_test/flutter_test.dart'; 2 import 'package:flutter_test/flutter_test.dart';
3 import 'package:sheet/sheet.dart'; 3 import 'package:sheet/sheet.dart';
4 4
5 -import '../helpers.dart'; 5 +import '../../../helpers.dart';
6 6
7 void main() { 7 void main() {
8 group('SheetPosition', () { 8 group('SheetPosition', () {