diff --git a/.gitignore b/.gitignore index 872636c1..7b8314e4 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ test/fixtures/ts-cjs-es2021/*.js test/fixtures/ts-esm/*.js .eslintcache .tshy* +.idea/ diff --git a/src/fetch.ts b/src/fetch.ts index b1f63bf2..7c0537a5 100644 --- a/src/fetch.ts +++ b/src/fetch.ts @@ -218,7 +218,7 @@ export class FetchFactory { } as any as RawResponseWithMeta; try { await FetchFactory.#opaqueLocalStorage.run(internalOpaque, async () => { - res = await UndiciFetch(input, init); + res = await UndiciFetch(request, init); }); } catch (e: any) { updateSocketInfo(socketInfo, internalOpaque, e); diff --git a/test/fetch.test.ts b/test/fetch.test.ts index 8c186763..3667ceeb 100644 --- a/test/fetch.test.ts +++ b/test/fetch.test.ts @@ -7,6 +7,7 @@ import { fetch, FetchDiagnosticsMessage, FetchFactory, FetchResponseDiagnosticsMessage, } from '../src/fetch.js'; import { RequestDiagnosticsMessage, ResponseDiagnosticsMessage } from '../src/HttpClient.js'; +import { Request } from 'undici'; describe('fetch.test.ts', () => { let close: any; @@ -109,4 +110,14 @@ describe('fetch.test.ts', () => { assert(stats); assert(Object.keys(stats).length > 0); }); + + it('fetch request with post should work', async () => { + await assert.doesNotReject(async () => { + const request = new Request(_url, { + method: 'POST', + body: 'test-body', + }); + await fetch(request); + }, /Cannot construct a Request with a Request object that has already been used/); + }); });