| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <script src="/js-test-resources/ui-helper.js"></script> |
| <script src="/resources/js-test-pre.js"></script> |
| <script src="/resources/payment-request.js"></script> |
| </head> |
| <body> |
| <script> |
| |
| description("Test specifying Apple Pay errors in response to the shippingaddresschange event."); |
| |
| window.jsTestIsAsync = true; |
| |
| async function runTests() |
| { |
| debug("Testing PaymentDetailsUpdate with null payment method errors."); |
| var detailsUpdate = validPaymentDetails(); |
| detailsUpdate.paymentMethodErrors = null; |
| await updateDetailsOnShippingAddressChange(validPaymentDetails(), { }, detailsUpdate); |
| shouldBe("internals.mockPaymentCoordinator.errors.length", "0"); |
| debug(""); |
| |
| debug("Testing PaymentDetailsUpdate with invalid payment method errors."); |
| var detailsUpdate = validPaymentDetails(); |
| detailsUpdate.paymentMethodErrors = [ |
| { }, |
| null, |
| new Promise(() => { }), |
| ]; |
| await updateDetailsOnShippingAddressChange(validPaymentDetails(), { }, detailsUpdate); |
| shouldBe("internals.mockPaymentCoordinator.errors.length", "0"); |
| debug(""); |
| |
| debug("Testing PaymentDetailsUpdate with Apple Pay payment method errors."); |
| var detailsUpdate = validPaymentDetails(); |
| detailsUpdate.paymentMethodErrors = [ |
| new ApplePayError("addressUnserviceable"), |
| new ApplePayError("shippingContactInvalid", "phoneticName", "Apple Pay error"), |
| ]; |
| await updateDetailsOnShippingAddressChange(validPaymentDetails(), { }, detailsUpdate); |
| shouldBe("internals.mockPaymentCoordinator.errors.length", "2"); |
| shouldBe("internals.mockPaymentCoordinator.errors[0].code", "'addressUnserviceable'"); |
| shouldBe("internals.mockPaymentCoordinator.errors[0].message", "''"); |
| shouldBe("internals.mockPaymentCoordinator.errors[0].contactField", "undefined"); |
| shouldBe("internals.mockPaymentCoordinator.errors[1].code", "'shippingContactInvalid'"); |
| shouldBe("internals.mockPaymentCoordinator.errors[1].message", "'Apple Pay error'"); |
| shouldBe("internals.mockPaymentCoordinator.errors[1].contactField", "'phoneticName'"); |
| debug(""); |
| |
| finishJSTest(); |
| } |
| |
| runTests(); |
| </script> |
| <script src="/resources/js-test-post.js"></script> |
| </body> |
| </html> |