Skip to content

Commit ccf1e84

Browse files
test: Add reset custom error test
1 parent 13556ce commit ccf1e84

File tree

2 files changed

+53
-6
lines changed

2 files changed

+53
-6
lines changed

test/form_builder_tester.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_form_builder/flutter_form_builder.dart';
33

4-
final _formKey = GlobalKey<FormBuilderState>();
4+
final formKey = GlobalKey<FormBuilderState>();
55

66
Widget buildTestableFieldWidget(
77
Widget widget, {
@@ -11,7 +11,7 @@ Widget buildTestableFieldWidget(
1111
return MaterialApp(
1212
home: Scaffold(
1313
body: FormBuilder(
14-
key: _formKey,
14+
key: formKey,
1515
initialValue: initialValue,
1616
clearValueOnUnregister: clearValueOnUnregister,
1717
child: widget,
@@ -20,10 +20,10 @@ Widget buildTestableFieldWidget(
2020
);
2121
}
2222

23-
bool formSave() => _formKey.currentState!.saveAndValidate();
23+
bool formSave() => formKey.currentState!.saveAndValidate();
2424
void formFieldDidChange(String fieldName, dynamic value) {
25-
_formKey.currentState!.fields[fieldName]!.didChange(value);
25+
formKey.currentState!.fields[fieldName]!.didChange(value);
2626
}
2727

28-
T formValue<T>(String name) => _formKey.currentState!.value[name];
29-
T formInstantValue<T>(String name) => _formKey.currentState!.instantValue[name];
28+
T formValue<T>(String name) => formKey.currentState!.value[name];
29+
T formInstantValue<T>(String name) => formKey.currentState!.instantValue[name];

test/src/form_builder_field_test.dart

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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('Form Builder Field -', () {
9+
testWidgets('Reset custom error from form builder', (tester) async {
10+
const textFieldName = 'text1';
11+
const errorTextField = 'error text field';
12+
final testWidget = FormBuilderTextField(name: textFieldName);
13+
await tester.pumpWidget(buildTestableFieldWidget(testWidget));
14+
15+
// Set custom error
16+
formKey.currentState
17+
?.invalidateField(name: textFieldName, errorText: errorTextField);
18+
await tester.pumpAndSettle();
19+
expect(find.text(errorTextField), findsOneWidget);
20+
21+
// Reset custom error
22+
formKey.currentState?.reset();
23+
await tester.pumpAndSettle();
24+
expect(find.text(errorTextField), findsNothing);
25+
});
26+
testWidgets('Reset custom error from form builder field', (tester) async {
27+
final textFieldKey = GlobalKey<FormBuilderFieldState>();
28+
const textFieldName = 'text2';
29+
const errorTextField = 'error text field';
30+
final testWidget = FormBuilderTextField(
31+
name: textFieldName,
32+
key: textFieldKey,
33+
);
34+
await tester.pumpWidget(buildTestableFieldWidget(testWidget));
35+
36+
// Set custom error
37+
textFieldKey.currentState?.invalidate(errorTextField);
38+
await tester.pumpAndSettle();
39+
expect(find.text(errorTextField), findsOneWidget);
40+
41+
// Reset custom error
42+
textFieldKey.currentState?.reset();
43+
await tester.pumpAndSettle();
44+
expect(find.text(errorTextField), findsNothing);
45+
});
46+
});
47+
}

0 commit comments

Comments
 (0)