Skip to content

Commit 1aa2e5e

Browse files
committed
test: add edge case tests for status code handling
- Test status code 400 should not default to 500 - Test status codes < 400 and falsy values default to 500 - Improve test description for non-error status codes
1 parent f6bec9f commit 1aa2e5e

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

test/test.js

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('errorHandler()', function () {
1919

2020
describe('status code', function () {
2121
describe('when non-error status code', function () {
22-
it('should set the status code to 500', function (done) {
22+
it('should default non-error status codes to 500', function (done) {
2323
var server = createServer({ status: 200 })
2424
request(server)
2525
.get('/')
@@ -53,6 +53,36 @@ describe('errorHandler()', function () {
5353
.expect(404, done)
5454
})
5555
})
56+
57+
describe('when status code is exactly 400', function () {
58+
it('should not default to 500', function (done) {
59+
var server = createServer({ status: 400 })
60+
request(server)
61+
.get('/')
62+
.expect(400, done)
63+
})
64+
})
65+
66+
describe('when status code should default to 500', function () {
67+
it('should default codes < 400 and falsy values to 500', function (done) {
68+
69+
var server1 = createServer({ status: 399 })
70+
var server2 = createServer({ statusCode: 0 })
71+
var server3 = createServer({ status: 0 })
72+
73+
var count = 0
74+
var servers = [server1, server2, server3]
75+
servers.forEach(function (server) {
76+
request(server)
77+
.get('/')
78+
.expect(500, function (err) {
79+
if (err) return done(err)
80+
count++
81+
if (count === servers.length) done()
82+
})
83+
})
84+
})
85+
})
5686
})
5787

5888
describe('error value', function () {

0 commit comments

Comments
 (0)