Skip to content

Commit eee91f2

Browse files
committed
Add tests for range slider updates
1 parent 23f6c0f commit eee91f2

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

test/form_builder_range_slider_test.dart

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ void main() {
2727
tester.getBottomRight(find.byType(RangeSlider)).translate(-24, 0);
2828
final Offset rightTarget = topLeft + (bottomRight - topLeft) * 0.5;
2929
await tester.tapAt(rightTarget);
30+
await tester.pumpAndSettle();
3031

3132
expect(formSave(), isTrue);
3233
expect(formValue<RangeValues>(widgetName), const RangeValues(10.0, 15.0));
@@ -54,9 +55,66 @@ void main() {
5455
tester.getBottomRight(find.byType(RangeSlider)).translate(-24, 0);
5556
final Offset leftTarget = topLeft + (bottomRight - topLeft) * 0.1;
5657
await tester.tapAt(leftTarget);
58+
await tester.pumpAndSettle();
5759

5860
expect(formSave(), isTrue);
5961
expect(formValue<RangeValues>(widgetName), const RangeValues(11.0, 18.0));
6062
});
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+
});
6184
});
6285
}
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

Comments
 (0)