Summary
PR #909 adds a free-text prefix field (1–3 digits, FilteringTextInputFormatter.digitsOnly, fixed + via prefixText). Widget tests cover 2-digit (43), 3-digit (423), empty-required, and the 4-digit cap. They do not cover:
- a 1-digit prefix (
+1, +7)
- letters / mixed paste into the prefix field (the existing “digits-only” test writes only to the national-number field)
- pasting
+41 into the prefix (double-plus) or deleting the decorative +
Found while reviewing #909. Not a merge-blocker: the formatters and the ^[0-9]{1,3}$ validator already encode those rules; this is a test-coverage gap on new logic.
Evidence
lib/widgets/form/phone_number_field.dart:79 — FilteringTextInputFormatter.digitsOnly
lib/widgets/form/phone_number_field.dart:91 — RegExp(r'^[0-9]{1,3}$')
test/widgets/form/phone_number_field_test.dart:47,89 — _enterAndValidate / “digits-only” only call _numberField()
test/widgets/form/phone_number_field_test.dart:138-145 — 2-digit prefix
test/widgets/form/phone_number_field_test.dart:176-183 — 3-digit prefix
test/widgets/form/phone_number_field_test.dart:199-206 — prefixText == '+' after typing 41, no paste/+ deletion case
Suggested follow-up
Add widget tests that:
- Accept prefix
1 + a national number and compose +1….
- Enter letters / mixed paste into
_prefixField() and assert they are filtered or rejected.
- Paste
+41 and assert the stored value is still a single + plus digits.
- Clear the editable prefix and assert the required-prefix error.
Related
Summary
PR #909 adds a free-text prefix field (1–3 digits,
FilteringTextInputFormatter.digitsOnly, fixed+viaprefixText). Widget tests cover 2-digit (43), 3-digit (423), empty-required, and the 4-digit cap. They do not cover:+1,+7)+41into the prefix (double-plus) or deleting the decorative+Found while reviewing #909. Not a merge-blocker: the formatters and the
^[0-9]{1,3}$validator already encode those rules; this is a test-coverage gap on new logic.Evidence
lib/widgets/form/phone_number_field.dart:79—FilteringTextInputFormatter.digitsOnlylib/widgets/form/phone_number_field.dart:91—RegExp(r'^[0-9]{1,3}$')test/widgets/form/phone_number_field_test.dart:47,89—_enterAndValidate/ “digits-only” only call_numberField()test/widgets/form/phone_number_field_test.dart:138-145— 2-digit prefixtest/widgets/form/phone_number_field_test.dart:176-183— 3-digit prefixtest/widgets/form/phone_number_field_test.dart:199-206—prefixText == '+'after typing41, no paste/+deletion caseSuggested follow-up
Add widget tests that:
1+ a national number and compose+1…._prefixField()and assert they are filtered or rejected.+41and assert the stored value is still a single+plus digits.Related