Skip to content

Commit 392d97f

Browse files
Add tests and fix readability
1 parent a1abae0 commit 392d97f

1 file changed

Lines changed: 67 additions & 29 deletions

File tree

test/flutter_switch_test.dart

Lines changed: 67 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,48 +7,83 @@ void main() {
77
final alignToggleIndicatorFinder = find.byWidgetPredicate(
88
(widget) => widget is Align && widget.child is Container);
99

10-
testWidgets(
11-
"displays the toggle indicator on the right if the given value is true",
12-
(WidgetTester tester) async {
13-
await tester.pumpWidget(
14-
_FlutterSwitchTestbed(
15-
value: true,
16-
),
17-
);
10+
group("FlutterSwitch", () {
11+
testWidgets(
12+
"displays the toggle indicator on the right if the given value is true",
13+
(WidgetTester tester) async {
14+
await tester.pumpWidget(
15+
_FlutterSwitchTestbed(
16+
value: true,
17+
),
18+
);
1819

19-
final align = tester.widget<Align>(alignToggleIndicatorFinder);
20+
final align = tester.widget<Align>(alignToggleIndicatorFinder);
2021

21-
expect(align.alignment, equals(Alignment.centerRight));
22-
},
23-
);
22+
expect(align.alignment, equals(Alignment.centerRight));
23+
},
24+
);
2425

25-
testWidgets(
26-
"displays the toggle indicator on the left if the given value is false",
27-
(WidgetTester tester) async {
28-
await tester.pumpWidget(
29-
_FlutterSwitchTestbed(
30-
value: false,
31-
),
32-
);
26+
testWidgets(
27+
"displays the toggle indicator on the left if the given value is false",
28+
(WidgetTester tester) async {
29+
await tester.pumpWidget(
30+
_FlutterSwitchTestbed(
31+
value: false,
32+
),
33+
);
34+
35+
final align = tester.widget<Align>(alignToggleIndicatorFinder);
36+
37+
expect(align.alignment, equals(Alignment.centerLeft));
38+
},
39+
);
40+
41+
testWidgets(
42+
"changes the toggle indicator alignment to the right on tap when the given value is false",
43+
(WidgetTester tester) async {
44+
await tester.pumpWidget(
45+
_FlutterSwitchTestbed(
46+
value: false,
47+
),
48+
);
49+
50+
await tester.tap(find.byType(GestureDetector));
51+
await tester.pump();
52+
53+
final align = tester.widget<Align>(alignToggleIndicatorFinder);
54+
55+
expect(align.alignment, equals(Alignment.centerLeft));
56+
},
57+
);
58+
59+
testWidgets(
60+
"changes the toggle indicator alignment to the left on tap when the given value is true",
61+
(WidgetTester tester) async {
62+
await tester.pumpWidget(
63+
_FlutterSwitchTestbed(
64+
value: true,
65+
),
66+
);
67+
68+
await tester.tap(find.byType(GestureDetector));
69+
await tester.pumpAndSettle();
3370

34-
final align = tester.widget<Align>(alignToggleIndicatorFinder);
71+
final align = tester.widget<Align>(alignToggleIndicatorFinder);
3572

36-
expect(align.alignment, equals(Alignment.centerLeft));
37-
},
38-
);
73+
expect(align.alignment, equals(Alignment.centerLeft));
74+
},
75+
);
76+
});
3977
}
4078

41-
/// A testbed needed to test the switch widget.
79+
/// A testbed class needed to test the [FlutterSwitch] widget.
4280
class _FlutterSwitchTestbed extends StatelessWidget {
4381
/// A callback that is called when the switch is toggled.
4482
final ValueChanged<bool> onToggle;
4583

4684
/// An initial value of the switch.
4785
final bool value;
4886

49-
/// A default on toggle callback of the switch.
50-
static void _defaultOnToggle(bool value) {}
51-
5287
/// Creates a new instance of this testbed.
5388
const _FlutterSwitchTestbed({
5489
Key key,
@@ -62,9 +97,12 @@ class _FlutterSwitchTestbed extends StatelessWidget {
6297
home: Scaffold(
6398
body: FlutterSwitch(
6499
value: value,
65-
onToggle: (value) => {},
100+
onToggle: onToggle,
66101
),
67102
),
68103
);
69104
}
105+
106+
/// A default on toggle callback of the switch.
107+
static void _defaultOnToggle(bool value) {}
70108
}

0 commit comments

Comments
 (0)