From 972270bcba5ab3c939ce936763989fe899e113ce Mon Sep 17 00:00:00 2001 From: Pedro Branco Date: Mon, 19 Feb 2018 14:43:36 +0000 Subject: [PATCH] Fix parsing response as JSON --- src/logging/request-obfuscator.js | 8 +++++--- test/logging/request-obfuscator_test.js | 21 +++++++++------------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/logging/request-obfuscator.js b/src/logging/request-obfuscator.js index 54bed2f..a5dc43a 100644 --- a/src/logging/request-obfuscator.js +++ b/src/logging/request-obfuscator.js @@ -49,17 +49,19 @@ function obfuscateResponse(request, instance) { return; } + request.body = JSON.parse(request.body); + const requestBody = JSON.parse(instance.body); if (isArray(request.body)) { const methodsById = mapKeys(requestBody, method => method.id); request.body = map(request.body, request => obfuscateResponseBody(request, methodsById[request.id].method)); - - return; + } else { + request.body = obfuscateResponseBody(request.body, requestBody.method); } - request.body = obfuscateResponseBody(request.body, requestBody.method); + request.body = JSON.stringify(request.body); } /** diff --git a/test/logging/request-obfuscator_test.js b/test/logging/request-obfuscator_test.js index 82e1665..0384a1b 100644 --- a/test/logging/request-obfuscator_test.js +++ b/test/logging/request-obfuscator_test.js @@ -150,11 +150,11 @@ describe('RequestObfuscator', () => { }); it('should obfuscate the private key from `body` when `method` is `dumpprivkey`', () => { - const request = { body: { id: '1485369469422-0', result: 'foobiz' }, type: 'response' }; + const request = { body: '{"id":"1485369469422-0","result":"foobiz"}', type: 'response' }; obfuscate(request, { body: '{"id":"1485369469422","method":"dumpprivkey","params":["foobar"]}' }); - request.body.should.eql({ id: '1485369469422-0', result: '******' }); + JSON.parse(request.body).should.eql({ id: '1485369469422-0', result: '******' }); }); it('should obfuscate the `body` when `headers.content-type` is `application/octet-stream`', () => { @@ -167,24 +167,21 @@ describe('RequestObfuscator', () => { it('should obfuscate the `request.body` of a batch request', () => { const request = { - body: [ + body: JSON.stringify([ { id: '1485369469422-0', result: 'foobar' }, { id: '1485369469422-2', result: 'foobiz' }, { id: '1485369469422-1', result: 'foo' } - ], + ]), type: 'response' }; obfuscate(request, { body: '[{"id":"1485369469422-0","method":"dumpprivkey","params":["foobar"]},{"id":"1485369469422-2","method":"getnewaddress","params":["foobiz"]},{"id":"1485369469422-1","method":"dumpprivkey","params":["foobiz"]}]' }); - request.should.eql({ - body: [ - { id: '1485369469422-0', result: '******' }, - { id: '1485369469422-2', result: 'foobiz' }, - { id: '1485369469422-1', result: '******' } - ], - type: 'response' - }); + JSON.parse(request.body).should.eql([ + { id: '1485369469422-0', result: '******' }, + { id: '1485369469422-2', result: 'foobiz' }, + { id: '1485369469422-1', result: '******' } + ]); }); }); });