<!DOCTYPE html>
<title>Web Bundle fetching failed due to not found error</title>
<link
  rel="help"
  href="https://github.com/WICG/webpackage/blob/main/explainers/subresource-loading.md"
/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/test-helpers.js"></script>
<body>
  <script>
    setup(() => {
      assert_true(HTMLScriptElement.supports("webbundle"));
    });

    // This test uses a non-existing WebBundle,
    //   /web-bundle/resources/wbn/cors/non-existing.wbn.
    // The intent of this test is to check if failing to fetch a WebBundle due to
    // not found error also makes subresource fetch requests fail.
    promise_test(async () => {
      const prefix = "/web-bundle/resources/wbn/";
      const resources = [prefix + "resource.js"];
      const element = await createWebBundleElement(
        prefix + "non-existing.wbn",
        resources
      );
      document.body.appendChild(element);

      // Can not fetch a subresource because Web Bundle fetch failed.
      await fetchAndWaitForReject(prefix + "resource.js");
    }, "Subresource fetch requests for non-existing Web Bundle should fail.");
  </script>
</body>
