diff --git a/source/core/options.ts b/source/core/options.ts index 8eedbe205..fa058a738 100644 --- a/source/core/options.ts +++ b/source/core/options.ts @@ -1078,7 +1078,13 @@ export default class Options { } // @ts-expect-error Type 'unknown' is not assignable to type 'never'. - this[key as keyof Options] = options[key as keyof Options]; + const value = options[key as keyof Options]; + if (value === undefined) { + continue; + } + + // @ts-expect-error Type 'unknown' is not assignable to type 'never'. + this[key as keyof Options] = value; push = true; } diff --git a/test/agent.ts b/test/agent.ts index 7d46eb5e2..87fbf4f55 100644 --- a/test/agent.ts +++ b/test/agent.ts @@ -205,3 +205,17 @@ test('no socket hung up regression', withServer, async (t, server, got) => { agent.destroy(); }); + +test('accept undefined agent', withServer, async (t, server, got) => { + server.get('/', (_request, response) => { + response.end('ok'); + }); + + const undefinedAgent = undefined; + t.truthy((await got({ + https: { + rejectUnauthorized: false, + }, + agent: undefinedAgent, + })).body); +});