@@ -27,6 +27,7 @@ void main() {
27
27
tester.getBottomRight (find.byType (RangeSlider )).translate (- 24 , 0 );
28
28
final Offset rightTarget = topLeft + (bottomRight - topLeft) * 0.5 ;
29
29
await tester.tapAt (rightTarget);
30
+ await tester.pumpAndSettle ();
30
31
31
32
expect (formSave (), isTrue);
32
33
expect (formValue <RangeValues >(widgetName), const RangeValues (10.0 , 15.0 ));
@@ -54,9 +55,66 @@ void main() {
54
55
tester.getBottomRight (find.byType (RangeSlider )).translate (- 24 , 0 );
55
56
final Offset leftTarget = topLeft + (bottomRight - topLeft) * 0.1 ;
56
57
await tester.tapAt (leftTarget);
58
+ await tester.pumpAndSettle ();
57
59
58
60
expect (formSave (), isTrue);
59
61
expect (formValue <RangeValues >(widgetName), const RangeValues (11.0 , 18.0 ));
60
62
});
63
+
64
+ testWidgets ('Stateful Update' , (WidgetTester tester) async {
65
+ const widgetName = 'formBuilderRangeSlider' ;
66
+ const testWidget = _FormBuilderRangeSliderStateTest (widgetName);
67
+ await tester.pumpWidget (buildTestableFieldWidget (testWidget));
68
+
69
+ expect (formSave (), isTrue);
70
+ expect (
71
+ formValue <RangeValues ?>(widgetName),
72
+ equals (const RangeValues (- 10.0 , 10.0 )),
73
+ );
74
+
75
+ await tester.tapAt (tester.getCenter (find.byType (TextButton )));
76
+ await tester.pumpAndSettle ();
77
+
78
+ expect (formSave (), isTrue);
79
+ expect (
80
+ formValue <RangeValues ?>(widgetName),
81
+ equals (const RangeValues (- 9.0 , 9.0 )),
82
+ );
83
+ });
61
84
});
62
85
}
86
+
87
+ class _FormBuilderRangeSliderStateTest extends StatefulWidget {
88
+ final String name;
89
+
90
+ const _FormBuilderRangeSliderStateTest (this .name);
91
+
92
+ @override
93
+ State <StatefulWidget > createState () =>
94
+ _FormBuilderRangeSliderStateTestState ();
95
+ }
96
+
97
+ class _FormBuilderRangeSliderStateTestState
98
+ extends State <_FormBuilderRangeSliderStateTest > {
99
+ double range = 10 ;
100
+
101
+ @override
102
+ Widget build (BuildContext context) {
103
+ return Row (
104
+ children: [
105
+ Expanded (
106
+ child: FormBuilderRangeSlider (
107
+ name: widget.name,
108
+ min: - range,
109
+ max: range,
110
+ initialValue: RangeValues (- range, range),
111
+ ),
112
+ ),
113
+ TextButton (
114
+ onPressed: () => setState (() => range -= 1 ),
115
+ child: const Text ('Reduce Range' ),
116
+ )
117
+ ],
118
+ );
119
+ }
120
+ }
0 commit comments