From bc9edcfcea55ac75a38a88976f9e8ebe91b0ed36 Mon Sep 17 00:00:00 2001 From: Amin Cheloh Date: Thu, 3 Aug 2017 22:10:25 +0700 Subject: [PATCH 1/2] fix response.message(httpMessage) res.statusMessage should assign before calling res.writeHead() explicitly. see https://nodejs.org/api/http.html#http_response_statusmessage --- lib/transmit.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/transmit.js b/lib/transmit.js index 2c6fb1d01..d7f719068 100755 --- a/lib/transmit.js +++ b/lib/transmit.js @@ -329,6 +329,10 @@ internals.writeHead = function (response) { return Boom.boomify(err); } + if (response.settings.message) { + res.statusMessage = response.settings.message; + } + try { res.writeHead(response.statusCode); } @@ -336,10 +340,6 @@ internals.writeHead = function (response) { return Boom.boomify(err); } - if (response.settings.message) { - res.statusMessage = response.settings.message; - } - return null; }; From c7f93a90fa6f6b53740c6aab8048e46134c5ff90 Mon Sep 17 00:00:00 2001 From: Amin Cheloh Date: Fri, 4 Aug 2017 10:44:51 +0700 Subject: [PATCH 2/2] add test custom status message --- test/transmit.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/transmit.js b/test/transmit.js index 2af5c8dc0..6db4cced4 100755 --- a/test/transmit.js +++ b/test/transmit.js @@ -2555,6 +2555,35 @@ describe('transmission', () => { }); }); + describe('writeHead()', () => { + + it('set custom statusMessage', (done) => { + + const server = new Hapi.Server(); + server.connection(); + + const handler = function (request, reply) { + + return reply({}).message('Great'); + }; + + server.route({ method: 'GET', path: '/', handler }); + server.start((err) => { + + expect(err).to.not.exist(); + + const uri = 'http://localhost:' + server.info.port; + + Wreck.get(uri, {}, (err, res) => { + + expect(err).to.not.exist(); + expect(res.statusMessage).to.equal('Great'); + server.stop(done); + }); + }); + }); + }); + describe('cache()', () => { it('sets max-age value (method and route)', (done) => {