Skip to content

Commit 0e4e89a

Browse files
implement override error msg validator
1 parent b58c851 commit 0e4e89a

File tree

5 files changed

+46
-6
lines changed

5 files changed

+46
-6
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
- [X] Aggregate validator (replaced by 'and' and 'or')
2+
- [X] Compose validator ('and' and 'or')
3+
- [X] Conditional validator ('validateIf' and 'skipIf')
4+
- [X] Log/debug validator ('debugPrint' validator)
5+
- [X] isEqual/isNotEqual validators
6+
- [X] validate with default value validator
7+
- [X] Required/optional validators
8+
- [X] Add tests to override error msg validator
9+
- [ ] Transform validator

lib/new_api_prototype/core_validators/override_error_msg.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import '../constants.dart';
22

3-
/// Replaces any inner message with [errorMsg]. It is useful for changing
4-
/// the message of direct validator implementations.
3+
/// Replaces any inner error message with [errorMsg]. It is useful for changing
4+
/// the error message of direct validator implementations.
55
Validator<T> overrideErrorMsg<T extends Object?>(
66
String errorMsg,
77
Validator<T> v,
88
) {
9-
return (value) {
10-
final vErrorMessage = v(value);
9+
return (T value) {
10+
final String? vErrorMessage = v(value);
1111
if (vErrorMessage != null) {
1212
return errorMsg;
1313
}

test/new_api_testing/core_validators/conditional_validators/skip_if_validator_test.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import 'package:flutter_test/flutter_test.dart';
22
import 'package:form_builder_validators/form_builder_validators.dart';
3-
import 'package:form_builder_validators/new_api_prototype/core_validators/conditional_validators.dart';
43

54
const String errorGt = 'error gt';
65
Validator<num> gt(num target) {

test/new_api_testing/core_validators/conditional_validators/validate_if_validator_test.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import 'package:flutter_test/flutter_test.dart';
22
import 'package:form_builder_validators/form_builder_validators.dart';
3-
import 'package:form_builder_validators/new_api_prototype/core_validators/conditional_validators.dart';
43

54
const String errorGt = 'error gt';
65
Validator<num> gt(num target) {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
import 'package:form_builder_validators/form_builder_validators.dart';
3+
4+
void main() {
5+
const String errorMsg = 'error msg';
6+
String? isEvenInteger(Object? input) =>
7+
input is int && input % 2 == 0 ? null : errorMsg;
8+
9+
group('Validator: overrideErrorMsg', () {
10+
test('Should return null when the input is valid for the inner validator',
11+
() {
12+
const String newMsg = 'new error msg';
13+
final Validator<Object?> v = overrideErrorMsg(newMsg, isEvenInteger);
14+
15+
// sanity check
16+
expect(isEvenInteger(12), isNull);
17+
// test check
18+
expect(v(12), isNull);
19+
});
20+
test(
21+
'Should return new error message when the input is not valid for the inner validator',
22+
() {
23+
const String newMsg = 'new error msg';
24+
final Validator<Object?> v = overrideErrorMsg(newMsg, isEvenInteger);
25+
26+
// sanity check
27+
expect(isEvenInteger(null), errorMsg);
28+
// test check
29+
expect(v(13), newMsg);
30+
expect(v(null), newMsg);
31+
});
32+
});
33+
}

0 commit comments

Comments
 (0)