diff --git a/lib/mockResponse.js b/lib/mockResponse.js index fc21987..639b0d9 100644 --- a/lib/mockResponse.js +++ b/lib/mockResponse.js @@ -259,14 +259,14 @@ function createResponse(options) { if (typeof a === 'number') { mockResponse.statusCode = a; } else { - _data += JSON.stringify(a); + mockResponse.write(JSON.stringify(a), 'utf8'); } } if (b) { if (typeof b === 'number') { mockResponse.statusCode = b; } else { - _data += JSON.stringify(b); + mockResponse.write(JSON.stringify(b), 'utf8'); } } diff --git a/test/lib/mockResponse.spec.js b/test/lib/mockResponse.spec.js index 44f4dc2..d0e1b51 100644 --- a/test/lib/mockResponse.spec.js +++ b/test/lib/mockResponse.spec.js @@ -539,6 +539,18 @@ describe('mockResponse', function() { expect(response.emit).to.have.been.calledWith('end'); }); + // reference : https://github.com/howardabrams/node-mocks-http/pull/98 + it('should call .write()', function() { + var originalWrite = response.write.bind(response); + var hackedContent = JSON.stringify({foo: 'bar'}); + response.write = function(data, encoding) { + console.log('data :', data); + return originalWrite(hackedContent, encoding); + }; + response.json({hello: 'world'}); + expect(response._getData()).to.eql(hackedContent); + }); + }); // TODO: fix in 2.0; method should mimic Express Response.jsonp() @@ -1092,4 +1104,5 @@ describe('mockResponse', function() { }); + });