From 9dc40793b997a029a1e5c86b790841eb484d1bab Mon Sep 17 00:00:00 2001 From: Pavan Ravipati Date: Tue, 23 Mar 2021 15:24:03 -0700 Subject: [PATCH] proxyAuth is not set when authentication is not provided --- __tests__/proxy.test.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/__tests__/proxy.test.ts b/__tests__/proxy.test.ts index e8e79f4..7ba3cef 100644 --- a/__tests__/proxy.test.ts +++ b/__tests__/proxy.test.ts @@ -2,6 +2,7 @@ import * as http from 'http' import * as httpm from '../_out' import * as pm from '../_out/proxy' import * as proxy from 'proxy' +import * as tunnelm from 'tunnel' let _proxyConnects: string[] let _proxyServer: http.Server @@ -195,6 +196,26 @@ describe('proxy', () => { expect(obj.url).toBe('https://httpbin.org/get') expect(_proxyConnects).toHaveLength(0) }) + + it('proxyAuth not set in tunnel agent when authentication is not provided', async () => { + process.env['https_proxy'] = 'http://127.0.0.1:8080' + const httpClient = new httpm.HttpClient() + let agent: tunnelm.TunnelingAgent = httpClient.getAgent('https://some-url') + console.log(agent) + expect(agent.proxyOptions.host).toBe('127.0.0.1') + expect(agent.proxyOptions.port).toBe('8080') + expect(agent.proxyOptions.proxyAuth).toBe(undefined) + }) + + it('proxyAuth is set in tunnel agent when authentication is provided', async () => { + process.env['https_proxy'] = 'http://user:password@127.0.0.1:8080' + const httpClient = new httpm.HttpClient() + let agent: tunnelm.TunnelingAgent = httpClient.getAgent('https://some-url') + console.log(agent) + expect(agent.proxyOptions.host).toBe('127.0.0.1') + expect(agent.proxyOptions.port).toBe('8080') + expect(agent.proxyOptions.proxyAuth).toBe('user:password') + }) }) function _clearVars() {