diff --git a/lib/config/constants.js b/lib/config/constants.js index 2f48a0c..4ce82a3 100644 --- a/lib/config/constants.js +++ b/lib/config/constants.js @@ -48,6 +48,7 @@ const RECONNECT_ID_HEADER = 'x-reconnect-id'; const OUTGOING = '[OUTGOING]'; const INCOMING = '[INCOMING]'; +const HTTPLOG = '[HTTP]'; class ConfigParser { setRetries() { @@ -253,4 +254,5 @@ module.exports = { kUpstreamRestart, PROXY_LOCKED, PROXY_RESTART, + HTTPLOG }; diff --git a/lib/core/Proxy.js b/lib/core/Proxy.js index a63cf01..bb24ba9 100644 --- a/lib/core/Proxy.js +++ b/lib/core/Proxy.js @@ -1,7 +1,7 @@ 'use strict'; const WebSocket = require('ws'); -const { config, kCleanup, kAddNewContext } = require('../config/constants'); +const { config, kCleanup, kAddNewContext, HTTPLOG } = require('../config/constants'); const logger = require('../util/loggerFactory'); const Context = require('./Context'); const { @@ -63,13 +63,22 @@ class Proxy { method: request.method, headers: request.headers, }; + logger.info(`${HTTPLOG} Received http request ${options}`); const proxyReq = http.request(options, (proxyResponse) => { response.writeHead(proxyResponse.statusCode, proxyResponse.headers); proxyResponse.pipe(response, { end: true, }); }); - + proxyReq.on('error', (error)=>{ + logger.error(`${request.url} received error ${error}`); + }); + proxyReq.on('timeout', ()=>{ + logger.info(`${request.url} timed out`); + }); + proxyReq.on('drain', ()=>{ + logger.info(`${request.url} drained out`); + }); request.pipe(proxyReq, { end: true, }); diff --git a/test/core/proxy.test.js b/test/core/proxy.test.js index 64968fd..af03f74 100644 --- a/test/core/proxy.test.js +++ b/test/core/proxy.test.js @@ -2,7 +2,7 @@ const Proxy = require('../../lib/core/Proxy'); const Context = require('../../lib/core/Context'); const { describe, it, before, after } = require('mocha'); const { expect } = require('chai'); -const { spy, stub } = require('sinon'); +const { spy } = require('sinon'); const { kAddNewContext } = require('../../lib/config/constants'); const http = require('http'); @@ -37,9 +37,10 @@ describe('Proxy', () => { }); it('should handle request', () => { - const requestStub = stub(http, 'request'); + const requestSpy = spy(http, 'request'); this.proxy.requestHandler(this.request, this.response); - expect(requestStub.calledOnce).to.be.equal(true); + expect(requestSpy.calledOnce).to.be.equal(true); + requestSpy.restore(); }); it('should set connection id', () => {