@@ -24,6 +24,7 @@ void main() {
24
24
expect (find.text (errorTextField), findsOneWidget);
25
25
});
26
26
});
27
+
27
28
group ('isValid -' , () {
28
29
testWidgets ('Should invalid when set custom error' , (tester) async {
29
30
final textFieldKey = GlobalKey <FormBuilderFieldState >();
@@ -39,9 +40,56 @@ void main() {
39
40
textFieldKey.currentState? .invalidate (errorTextField);
40
41
await tester.pumpAndSettle ();
41
42
43
+ expect (textFieldKey.currentState? .isValid, isFalse);
44
+ });
45
+ testWidgets (
46
+ 'Should valid when no has error and autovalidateMode is always' ,
47
+ (tester) async {
48
+ final textFieldKey = GlobalKey <FormBuilderFieldState >();
49
+ const textFieldName = 'text' ;
50
+ const errorTextField = 'error text field' ;
51
+ final testWidget = FormBuilderTextField (
52
+ name: textFieldName,
53
+ key: textFieldKey,
54
+ autovalidateMode: AutovalidateMode .always,
55
+ validator: (value) =>
56
+ value == null || value.isEmpty ? errorTextField : null ,
57
+ );
58
+ await tester.pumpWidget (buildTestableFieldWidget (testWidget));
59
+
60
+ expect (textFieldKey.currentState? .isValid, isFalse);
61
+
62
+ final widgetFinder = find.byWidget (testWidget);
63
+ await tester.enterText (widgetFinder, 'test' );
64
+ await tester.pumpAndSettle ();
65
+
66
+ expect (textFieldKey.currentState? .isValid, isTrue);
67
+ });
68
+ testWidgets (
69
+ 'Should invalid when has error and autovalidateMode is always' ,
70
+ (tester) async {
71
+ final textFieldKey = GlobalKey <FormBuilderFieldState >();
72
+ const textFieldName = 'text' ;
73
+ const errorTextField = 'error text field' ;
74
+ final testWidget = FormBuilderTextField (
75
+ name: textFieldName,
76
+ key: textFieldKey,
77
+ autovalidateMode: AutovalidateMode .always,
78
+ validator: (value) =>
79
+ value == null || value.length < 10 ? errorTextField : null ,
80
+ );
81
+ await tester.pumpWidget (buildTestableFieldWidget (testWidget));
82
+
83
+ expect (textFieldKey.currentState? .isValid, isFalse);
84
+
85
+ final widgetFinder = find.byWidget (testWidget);
86
+ await tester.enterText (widgetFinder, 'test' );
87
+ await tester.pumpAndSettle ();
88
+
42
89
expect (textFieldKey.currentState? .isValid, isFalse);
43
90
});
44
91
});
92
+
45
93
group ('hasErrors -' , () {
46
94
testWidgets ('Should has errors when set custom error' , (tester) async {
47
95
final textFieldKey = GlobalKey <FormBuilderFieldState >();
0 commit comments