Skip to content

Commit a9fb94c

Browse files
committed
Add tests for FormBuilderRangeSlider
1 parent 58c1f46 commit a9fb94c

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:flutter_form_builder/flutter_form_builder.dart';
3+
import 'package:flutter_test/flutter_test.dart';
4+
5+
import 'form_builder_tester.dart';
6+
7+
void main() {
8+
group('FormBuilderRangeSlider --', () {
9+
testWidgets('basic', (WidgetTester tester) async {
10+
const widgetName = 'formBuilderRangeSlider';
11+
final testWidget = FormBuilderRangeSlider(
12+
name: widgetName,
13+
min: 10.0,
14+
max: 20.0,
15+
);
16+
await tester.pumpWidget(buildTestableFieldWidget(testWidget));
17+
18+
expect(formSave(), isTrue);
19+
expect(formValue<RangeValues?>(widgetName),
20+
equals(const RangeValues(10.0, 10.0)));
21+
22+
// Inspired by https://github.com/flutter/flutter/blob/master/packages/flutter/test/material/range_slider_test.dart
23+
// Tap at the center of the slider.
24+
final Offset topLeft =
25+
tester.getTopLeft(find.byType(RangeSlider)).translate(24, 0);
26+
final Offset bottomRight =
27+
tester.getBottomRight(find.byType(RangeSlider)).translate(-24, 0);
28+
final Offset rightTarget = topLeft + (bottomRight - topLeft) * 0.5;
29+
await tester.tapAt(rightTarget);
30+
31+
expect(formSave(), isTrue);
32+
expect(formValue<RangeValues>(widgetName), const RangeValues(10.0, 15.0));
33+
});
34+
35+
testWidgets('initial value', (WidgetTester tester) async {
36+
const widgetName = 'formBuilderRangeSlider';
37+
final testWidget = FormBuilderRangeSlider(
38+
name: widgetName,
39+
min: 10.0,
40+
max: 20.0,
41+
initialValue: const RangeValues(14.0, 18.0),
42+
);
43+
await tester.pumpWidget(buildTestableFieldWidget(testWidget));
44+
45+
expect(formSave(), isTrue);
46+
expect(formValue<RangeValues?>(widgetName),
47+
equals(const RangeValues(14.0, 18.0)));
48+
49+
// Inspired by https://github.com/flutter/flutter/blob/master/packages/flutter/test/material/range_slider_test.dart
50+
// Tap a small offset after the start of the slider.
51+
final Offset topLeft =
52+
tester.getTopLeft(find.byType(RangeSlider)).translate(24, 0);
53+
final Offset bottomRight =
54+
tester.getBottomRight(find.byType(RangeSlider)).translate(-24, 0);
55+
final Offset leftTarget = topLeft + (bottomRight - topLeft) * 0.1;
56+
await tester.tapAt(leftTarget);
57+
58+
expect(formSave(), isTrue);
59+
expect(formValue<RangeValues>(widgetName), const RangeValues(11.0, 18.0));
60+
});
61+
});
62+
}

0 commit comments

Comments
 (0)