| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Tests for providing `supportsCouponCode` in `data` as part of `PaymentMethodData`.</title> |
| <script src="/js-test-resources/ui-helper.js"></script> |
| <script src="/resources/payment-request.js"></script> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <script> |
| setup({ explicit_done: true, explicit_timeout: true }); |
| |
| user_activation_test(async (test) => { |
| let request = new PaymentRequest([validPaymentMethod()], validPaymentDetails()); |
| request.addEventListener("merchantvalidation", (event) => { |
| event.complete({ }); |
| }); |
| request.addEventListener("shippingaddresschange", (event) => { |
| assert_equals(internals.mockPaymentCoordinator.supportsCouponCode, null, "check that the `supportsCouponCode` is still `null` after an update"); |
| event.updateWith({ }); |
| internals.mockPaymentCoordinator.acceptPayment(); |
| }); |
| |
| let response = await request.show(); |
| |
| assert_equals(internals.mockPaymentCoordinator.supportsCouponCode, null, "check that the `supportsCouponCode` is still `null` after the payment is accepted"); |
| |
| await response.complete("success"); |
| }, "Should not have a default value for `supportsCouponCode`."); |
| |
| user_activation_test(async (test) => { |
| const method = validPaymentMethod(); |
| method.data.supportsCouponCode = true; |
| |
| let request = new PaymentRequest([method], validPaymentDetails()); |
| request.addEventListener("merchantvalidation", (event) => { |
| event.complete({ }); |
| }); |
| request.addEventListener("shippingaddresschange", (event) => { |
| assert_equals(internals.mockPaymentCoordinator.supportsCouponCode, method.data.supportsCouponCode, "check that the `supportsCouponCode` still matches after an update"); |
| event.updateWith({ }); |
| internals.mockPaymentCoordinator.acceptPayment(); |
| }); |
| |
| let response = await request.show(); |
| |
| assert_equals(internals.mockPaymentCoordinator.supportsCouponCode, method.data.supportsCouponCode, "check that the `supportsCouponCode` still matches after the payment is accepted"); |
| |
| await response.complete("success"); |
| }, "Should propagate `supportsCouponCode` if provided."); |
| |
| done(); |
| </script> |
| |