Fix STPAddressViewModel.isValid
to use country when requiredBillingFields = .Zip
#853
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
We had a bug, where
STPAddressViewModel
objects that only require the Postal Code didnot use the country when calculating
isValid
, but did use the country when decidingwhether or not to show the postal code field.
This resulted in a stuck user: they couldn't add a credit card, because the
STPAddCardViewController
was waiting for them to enter a postal code, but didn't allowthem to.
Additionally, in this case we were also incorrectly showing the
inputAccessoryToolbar
with a 'Next' button that did nothing.
Motivation
Fixes #840
Testing
Augmented
STPAddressViewModelTest
to capture this case, and protect against regressions.Further, manual testing in the Standard Integration app, both US & Macau (req'd postal &
non-req'd postal code), and all three values of
STPBillingAddressFields
(none, zip, full)