diff --git a/index.js b/index.js index 82271f6..951a698 100644 --- a/index.js +++ b/index.js @@ -73,7 +73,7 @@ function createError () { deprecate('non-error status code; use only 4xx or 5xx status codes') } - if (typeof status !== 'number' || + if (typeof status !== 'number' || isNaN(status) || (!statuses.message[status] && (status < 400 || status >= 600))) { status = 500 } diff --git a/test/test.js b/test/test.js index 7db9f16..dd337f5 100644 --- a/test/test.js +++ b/test/test.js @@ -331,6 +331,15 @@ describe('HTTP Errors', function () { assert.strictEqual(err.expose, false) }) + it('createError(NaN) should default to 500', function () { + var err = createError(NaN) + assert.strictEqual(err.name, 'InternalServerError') + assert.strictEqual(err.message, 'Internal Server Error') + assert.strictEqual(err.status, 500) + assert.strictEqual(err.statusCode, 500) + assert.strictEqual(err.expose, false) + }) + it('createError(err, props)', function () { var _err = new Error('LOL') _err.status = 404