diff options
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/js/web/fetch.ts | 13 | ||||
| -rw-r--r-- | cli/tests/unit/fetch_test.ts | 5 |
2 files changed, 12 insertions, 6 deletions
diff --git a/cli/js/web/fetch.ts b/cli/js/web/fetch.ts index a56ebe772..2f01e7ad7 100644 --- a/cli/js/web/fetch.ts +++ b/cli/js/web/fetch.ts @@ -288,6 +288,7 @@ export async function fetch( } } + let responseInit: ResponseInit = {}; while (remRedirectCount) { const fetchResponse = await sendFetchReq(url, method, headers, body); @@ -314,7 +315,7 @@ export async function fetch( }, }); - let responseInit: ResponseInit = { + responseInit = { status: fetchResponse.status, statusText: fetchResponse.statusText, headers: fetchResponse.headers, @@ -374,6 +375,12 @@ export async function fetch( return response; } } - // Return a network error due to too many redirections - throw notImplemented(); + + responseData.set(responseInit, { + type: "error", + redirected: false, + url: "", + }); + + return new Response(null, responseInit); } diff --git a/cli/tests/unit/fetch_test.ts b/cli/tests/unit/fetch_test.ts index 6dfb23390..5fd1cc469 100644 --- a/cli/tests/unit/fetch_test.ts +++ b/cli/tests/unit/fetch_test.ts @@ -245,14 +245,13 @@ unitTest( unitTest( { - // FIXME(bartlomieju): - // The feature below is not implemented, but the test should work after implementation - ignore: true, perms: { net: true }, }, async function fetchWithInfRedirection(): Promise<void> { const response = await fetch("http://localhost:4549/cli/tests"); // will redirect to the same place assertEquals(response.status, 0); // network error + assertEquals(response.type, "error"); + assertEquals(response.ok, false); } ); |
