diff --git a/index.js b/index.js index d691cc7..15ad55a 100644 --- a/index.js +++ b/index.js @@ -120,7 +120,9 @@ function setWriteHeadHeaders (statusCode) { var length = arguments.length var headerIndex = length > 1 && typeof arguments[1] === 'string' ? 2 - : 1 + : length > 2 + ? 2 + : 1 var headers = length >= headerIndex + 1 ? arguments[headerIndex] diff --git a/test/test.js b/test/test.js index 2efcf30..bb69742 100644 --- a/test/test.js +++ b/test/test.js @@ -221,6 +221,34 @@ describe('onHeaders(res, listener)', function () { }) }) + describe('writeHead(status, undefined, obj)', function () { + it('should set headers when statusText is undefined', function (done) { + var server = createServer(echoListener, handler) + + function handler (req, res) { + res.writeHead(200, undefined, { 'X-Outgoing': 'test' }) + } + + request(server) + .get('/') + .expect('X-Outgoing-Echo', 'test') + .expect(200, done) + }) + + it('should set headers when statusText is null', function (done) { + var server = createServer(echoListener, handler) + + function handler (req, res) { + res.writeHead(200, null, { 'X-Outgoing': 'test' }) + } + + request(server) + .get('/') + .expect('X-Outgoing-Echo', 'test') + .expect(200, done) + }) + }) + describe('writeHead(status, obj)', function () { it('should be available in listener', function (done) { var server = createServer(listener, handler)