Test specifying errors in response to the shippingaddresschange event.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Testing PaymentDetailsUpdate with no errors.
PASS internals.mockPaymentCoordinator.errors.length is 0

Testing PaymentDetailsUpdate with an error and shipping options.
PASS internals.mockPaymentCoordinator.errors.length is 0
PASS internals.mockPaymentCoordinator.shippingMethods.length is 1
PASS internals.mockPaymentCoordinator.shippingMethods[0].label is 'option 1'
PASS internals.mockPaymentCoordinator.shippingMethods[0].detail is ''
PASS internals.mockPaymentCoordinator.shippingMethods[0].amount is '1.00'
PASS internals.mockPaymentCoordinator.shippingMethods[0].identifier is 'option1'

Testing PaymentDetailsUpdate with an empty error.
PASS internals.mockPaymentCoordinator.errors.length is 1
PASS internals.mockPaymentCoordinator.errors[0].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[0].message is ''
PASS internals.mockPaymentCoordinator.errors[0].contactField is undefined

Testing PaymentDetailsUpdate with an error.
PASS internals.mockPaymentCoordinator.errors.length is 1
PASS internals.mockPaymentCoordinator.errors[0].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[0].message is 'single error'
PASS internals.mockPaymentCoordinator.errors[0].contactField is undefined

Testing PaymentDetailsUpdate with an error and undefined shipping address errors.
PASS internals.mockPaymentCoordinator.errors.length is 1
PASS internals.mockPaymentCoordinator.errors[0].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[0].message is 'single error'
PASS internals.mockPaymentCoordinator.errors[0].contactField is undefined

Testing PaymentDetailsUpdate with shipping address errors.
PASS internals.mockPaymentCoordinator.errors.length is 8
PASS internals.mockPaymentCoordinator.errors[0].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[0].message is 'error'
PASS internals.mockPaymentCoordinator.errors[0].contactField is 'addressLines'
PASS internals.mockPaymentCoordinator.errors[1].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[1].message is 'error'
PASS internals.mockPaymentCoordinator.errors[1].contactField is 'locality'
PASS internals.mockPaymentCoordinator.errors[2].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[2].message is 'error'
PASS internals.mockPaymentCoordinator.errors[2].contactField is 'country'
PASS internals.mockPaymentCoordinator.errors[3].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[3].message is 'error'
PASS internals.mockPaymentCoordinator.errors[3].contactField is 'subLocality'
PASS internals.mockPaymentCoordinator.errors[4].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[4].message is 'error'
PASS internals.mockPaymentCoordinator.errors[4].contactField is 'phoneNumber'
PASS internals.mockPaymentCoordinator.errors[5].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[5].message is 'error'
PASS internals.mockPaymentCoordinator.errors[5].contactField is 'postalCode'
PASS internals.mockPaymentCoordinator.errors[6].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[6].message is 'error'
PASS internals.mockPaymentCoordinator.errors[6].contactField is 'name'
PASS internals.mockPaymentCoordinator.errors[7].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[7].message is 'error'
PASS internals.mockPaymentCoordinator.errors[7].contactField is 'administrativeArea'

Testing PaymentDetailsUpdate with unrequested payer errors.
PASS internals.mockPaymentCoordinator.errors.length is 0

Testing PaymentDetailsUpdate with payer errors.
PASS internals.mockPaymentCoordinator.errors.length is 3
PASS internals.mockPaymentCoordinator.errors[0].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[0].message is 'error'
PASS internals.mockPaymentCoordinator.errors[0].contactField is 'name'
PASS internals.mockPaymentCoordinator.errors[1].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[1].message is 'error'
PASS internals.mockPaymentCoordinator.errors[1].contactField is 'emailAddress'
PASS internals.mockPaymentCoordinator.errors[2].code is 'shippingContactInvalid'
PASS internals.mockPaymentCoordinator.errors[2].message is 'error'
PASS internals.mockPaymentCoordinator.errors[2].contactField is 'phoneNumber'

Testing specifying an invalid shipping option in response to shippingaddresschange.
PASS paymentRequest.show() rejected promise  with TypeError: "EUR" does not match the expected currency of "USD". Apple Pay requires all PaymentCurrencyAmounts to use the same currency code..

PASS successfullyParsed is true

TEST COMPLETE

