diff --git a/.changeset/perfect-terms-tie.md b/.changeset/perfect-terms-tie.md new file mode 100644 index 00000000..3e7e876f --- /dev/null +++ b/.changeset/perfect-terms-tie.md @@ -0,0 +1,5 @@ +--- +'https-proxy-agent': minor +--- + +Emit "proxyConnect" event on Agent instance diff --git a/packages/https-proxy-agent/src/index.ts b/packages/https-proxy-agent/src/index.ts index 8dcab323..8244b1c7 100644 --- a/packages/https-proxy-agent/src/index.ts +++ b/packages/https-proxy-agent/src/index.ts @@ -132,6 +132,7 @@ export class HttpsProxyAgent extends Agent { const { connect, buffered } = await proxyResponsePromise; req.emit('proxyConnect', connect); + this.emit('proxyConnect', connect, req); if (connect.statusCode === 200) { req.once('socket', resume); diff --git a/packages/https-proxy-agent/test/test.ts b/packages/https-proxy-agent/test/test.ts index 1da41a14..93bd43e9 100644 --- a/packages/https-proxy-agent/test/test.ts +++ b/packages/https-proxy-agent/test/test.ts @@ -126,7 +126,11 @@ describe('HttpsProxyAgent', () => { rejectUnauthorized: false, }); - const res = await req(serverUrl, { agent }); + const r = req(serverUrl, { agent }); + const [connect] = await once(agent, 'proxyConnect'); + expect(connect.statusCode).toEqual(200); + expect(connect.statusText).toEqual('Connection established'); + const res = await r; const body = await json(res); assert.equal(serverUrl.host, body.host); });