Skip to content

Commit eb025eb

Browse files
committed
Fix cardHolderData invalid field removal condition
1 parent 0358e0a commit eb025eb

2 files changed

Lines changed: 9 additions & 7 deletions

File tree

‎lib/src/controllers/credit_card_controller.dart‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,9 @@ class CreditCardController extends ValueNotifier<CreditCardPaymentMethodState> {
146146
{String? keyValue}) {
147147
var newMap = value.textFieldValidityStatuses;
148148
newMap[key] = validField;
149-
if (CardHolderData.values
150-
.contains(CardHolderDataExtension.fromString(key)) &&
149+
final cardHolderValues = CardHolderData.values.toList();
150+
cardHolderValues.remove(CardHolderData.unknown);
151+
if (cardHolderValues.contains(CardHolderDataExtension.fromString(key)) &&
151152
(keyValue == null || keyValue.isEmpty)) {
152153
newMap.remove(key);
153154
}

‎test/controllers/credit_card_payment_method_controller_test.dart‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ void main() {
170170

171171
// Now remove it by passing null/empty value
172172
controller.setTextFieldValidityStatuses('email', true, keyValue: null);
173-
expect(!controller.value.textFieldValidityStatuses.containsKey('email'),
173+
expect(controller.value.textFieldValidityStatuses.containsKey('email'),
174174
false);
175175

176176
// Test with empty string
@@ -183,8 +183,7 @@ void main() {
183183
controller.setTextFieldValidityStatuses('phoneNumber', true,
184184
keyValue: '');
185185
expect(
186-
!controller.value.textFieldValidityStatuses
187-
.containsKey('phoneNumber'),
186+
controller.value.textFieldValidityStatuses.containsKey('phoneNumber'),
188187
false);
189188
});
190189

@@ -242,8 +241,10 @@ void main() {
242241
controller.setTextFieldValidityStatuses('expiryDate', true);
243242
controller.setTextFieldValidityStatuses('cvv', true);
244243
controller.setTextFieldValidityStatuses('name', true);
245-
controller.setTextFieldValidityStatuses('email', true);
246-
controller.setTextFieldValidityStatuses('phoneNumber', true);
244+
controller.setTextFieldValidityStatuses('email', true,
245+
keyValue: "test@example.com");
246+
controller.setTextFieldValidityStatuses('phoneNumber', true,
247+
keyValue: "1234567890");
247248

248249
expect(controller.value.isFormValid, true);
249250
});

0 commit comments

Comments
 (0)