From 2d1497e71288995100c6d90eaee3c9e5b38039e0 Mon Sep 17 00:00:00 2001 From: Nathan Duthoit Date: Wed, 7 Dec 2022 05:13:20 -0500 Subject: [PATCH] Destroy request object after successful response (#2187) --- source/as-promise/index.ts | 1 + test/promise.ts | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/source/as-promise/index.ts b/source/as-promise/index.ts index 8f3698ede..2970798a9 100644 --- a/source/as-promise/index.ts +++ b/source/as-promise/index.ts @@ -131,6 +131,7 @@ export default function asPromise(normalizedOptions: NormalizedOptions): Canc return; } + request.destroy(); resolve(request.options.resolveBodyOnly ? response.body as T : response as unknown as T); }); diff --git a/test/promise.ts b/test/promise.ts index 3e01601c6..63e64e26e 100644 --- a/test/promise.ts +++ b/test/promise.ts @@ -95,3 +95,14 @@ test('promise.json() does not fail when server returns an error and throwHttpErr const promise = got('', {throwHttpErrors: false}); await t.notThrowsAsync(promise.json()); }); + +test('the request is destroyed once the promise has resolved', withServer, async (t, server, got) => { + server.get('/', (_request, response) => { + response.statusCode = 200; + response.end('null'); + }); + + const {request} = await got(''); + + t.true(request.destroyed); +});