<!doctype html>
<meta charset="utf8">
<link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentvalidationerrors-error">
<title>
  PaymentValidationErrors' `error` member
</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../payment-response/helpers.js"></script>
<script>
function retryShowsErrorMember(button) {
  button.disabled = true;
  promise_test(async t => {
    const { response } = await getPaymentRequestResponse();
    await response.retry({ error: "PASS" });
    await response.complete("success");
  }, button.textContent.trim());
}
</script>
<h2>
  Manual Test for PaymentValidationErrors's `error` member - Please run in order!
</h2>
<p>
  Click on each button in sequence from top to bottom without refreshing the page.
  Each button will bring up the Payment Request UI window.
</p>
<p>
  When presented with the payment sheet, use any card and select to "Pay".
  You will be asked to retry the payment and an error should be shown somewhere
  in the UI. The expected error string is described in each individual test.
  If you see the error, hit "Pay" again. If you don't see the error,
  abort the payment request by hitting "esc" - which means that particular test
  has failed.
</p>
<ol>
  <li>
    <button onclick="retryShowsErrorMember(this);">
      The payment sheet shows the error "PASS" somewhere in the UI.
    </button>
  </li>
  <li>
    <button onclick="done();">
      Done!
    </button>
  </li>
</ol>
<small>
  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
</small>
