From f4d1982afc3ff827f4348cb48a458685aecf0f8f Mon Sep 17 00:00:00 2001 From: Wynter Woods Date: Mon, 2 Dec 2024 12:38:57 -0800 Subject: [PATCH] Modify fetch.js tests to check for headers being cloned rather than sharing them between clones --- tests/integration/fetch/fetch.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/integration/fetch/fetch.js b/tests/integration/fetch/fetch.js index ecb4b5a..4728144 100644 --- a/tests/integration/fetch/fetch.js +++ b/tests/integration/fetch/fetch.js @@ -21,7 +21,10 @@ export const handler = serveTest(async (t) => { body: 'te', method: 'post' }); + + request.headers.set("foo", "bar") const newRequest = request.clone(); + strictEqual(newRequest instanceof Request, true, 'newRequest instanceof Request'); strictEqual(newRequest.method, request.method, 'newRequest.method'); strictEqual(newRequest.url, request.url, 'newRequest.url'); @@ -29,6 +32,11 @@ export const handler = serveTest(async (t) => { strictEqual(request.bodyUsed, false, 'request.bodyUsed'); strictEqual(newRequest.bodyUsed, false, 'newRequest.bodyUsed'); strictEqual(newRequest.body instanceof ReadableStream, true, 'newRequest.body instanceof ReadableStream'); + + strictEqual(newRequest.headers.get("foo"), "bar", 'newRequest.status pre-modification'); + request.headers.set("foo", "bao") + strictEqual(newRequest.headers.get("foo"), "bar", 'newRequest.status post-modification'); + strictEqual(request.headers.get("foo"), "bao", 'request.status post-modification'); } { @@ -68,7 +76,9 @@ export const handler = serveTest(async (t) => { status: 200, statusText: 'Success' }); + response.headers.set("foo", "bar") const newResponse = response.clone(); + strictEqual(newResponse instanceof Response, true, 'newResponse instanceof Request'); strictEqual(response.bodyUsed, false, 'response.bodyUsed'); strictEqual(newResponse.bodyUsed, false, 'newResponse.bodyUsed'); @@ -76,6 +86,11 @@ export const handler = serveTest(async (t) => { strictEqual(newResponse.status, 200, 'newResponse.status'); strictEqual(newResponse.statusText, 'Success', 'newResponse.statusText'); strictEqual(newResponse.body instanceof ReadableStream, true, 'newResponse.body instanceof ReadableStream'); + + strictEqual(newResponse.headers.get("foo"), "bar", 'newResponse.status pre-modification'); + response.headers.set("foo", "bao") + strictEqual(newResponse.headers.get("foo"), "bar", 'newResponse.status post-modification'); + strictEqual(response.headers.get("foo"), "bao", 'response.status post-modification'); } {