1
1
'use strict'
2
-
3
- var express = require ( '../' )
4
- var request = require ( 'supertest' )
5
-
6
- var isIoJs = process . release
7
- ? process . release . name === 'io.js'
8
- : [ 'v1.' , 'v2.' , 'v3.' ] . indexOf ( process . version . slice ( 0 , 3 ) ) !== - 1
2
+ const express = require ( '../.' ) ;
3
+ const request = require ( 'supertest' ) ;
9
4
10
5
describe ( 'res' , function ( ) {
11
6
describe ( '.status(code)' , function ( ) {
12
- // This test fails in node 4.0.0
13
- // https://github.com/expressjs/express/pull/2237/checks
14
- // As this will all be removed when https://github.com/expressjs/express/pull/4212
15
- // lands I am skipping for now and we can delete with that PR
16
- describe . skip ( 'when "code" is undefined' , function ( ) {
17
- it ( 'should raise error for invalid status code' , function ( done ) {
18
- var app = express ( )
19
7
20
- app . use ( function ( req , res ) {
21
- res . status ( undefined ) . end ( )
22
- } )
8
+ it ( 'should set the status code when valid' , function ( done ) {
9
+ var app = express ( ) ;
23
10
24
- request ( app )
25
- . get ( '/' )
26
- . expect ( 500 , / I n v a l i d s t a t u s c o d e / , function ( err ) {
27
- if ( isIoJs ) {
28
- done ( err ? null : new Error ( 'expected error' ) )
29
- } else {
30
- done ( err )
31
- }
32
- } )
33
- } )
34
- } )
11
+ app . use ( function ( req , res ) {
12
+ res . status ( 200 ) . end ( ) ;
13
+ } ) ;
35
14
36
- describe . skip ( 'when "code" is null' , function ( ) {
37
- it ( 'should raise error for invalid status code' , function ( done ) {
15
+ request ( app )
16
+ . get ( '/' )
17
+ . expect ( 200 , done ) ;
18
+ } ) ;
19
+
20
+ describe ( 'accept valid ranges' , function ( ) {
21
+ // not testing w/ 100, because that has specific meaning and behavior in Node as Expect: 100-continue
22
+ it ( 'should set the response status code to 101' , function ( done ) {
38
23
var app = express ( )
39
24
40
25
app . use ( function ( req , res ) {
41
- res . status ( null ) . end ( )
26
+ res . status ( 101 ) . end ( )
42
27
} )
43
28
44
29
request ( app )
45
30
. get ( '/' )
46
- . expect ( 500 , / I n v a l i d s t a t u s c o d e / , function ( err ) {
47
- if ( isIoJs ) {
48
- done ( err ? null : new Error ( 'expected error' ) )
49
- } else {
50
- done ( err )
51
- }
52
- } )
31
+ . expect ( 101 , done )
53
32
} )
54
- } )
55
33
56
- describe ( 'when "code" is 201' , function ( ) {
57
34
it ( 'should set the response status code to 201' , function ( done ) {
58
35
var app = express ( )
59
36
@@ -65,9 +42,7 @@ describe('res', function () {
65
42
. get ( '/' )
66
43
. expect ( 201 , done )
67
44
} )
68
- } )
69
45
70
- describe ( 'when "code" is 302' , function ( ) {
71
46
it ( 'should set the response status code to 302' , function ( done ) {
72
47
var app = express ( )
73
48
@@ -79,9 +54,7 @@ describe('res', function () {
79
54
. get ( '/' )
80
55
. expect ( 302 , done )
81
56
} )
82
- } )
83
57
84
- describe ( 'when "code" is 403' , function ( ) {
85
58
it ( 'should set the response status code to 403' , function ( done ) {
86
59
var app = express ( )
87
60
@@ -93,9 +66,7 @@ describe('res', function () {
93
66
. get ( '/' )
94
67
. expect ( 403 , done )
95
68
} )
96
- } )
97
69
98
- describe ( 'when "code" is 501' , function ( ) {
99
70
it ( 'should set the response status code to 501' , function ( done ) {
100
71
var app = express ( )
101
72
@@ -107,100 +78,129 @@ describe('res', function () {
107
78
. get ( '/' )
108
79
. expect ( 501 , done )
109
80
} )
110
- } )
111
81
112
- describe ( 'when "code" is "410"' , function ( ) {
113
- it ( 'should set the response status code to 410' , function ( done ) {
82
+ it ( 'should set the response status code to 700' , function ( done ) {
114
83
var app = express ( )
115
84
116
85
app . use ( function ( req , res ) {
117
- res . status ( '410' ) . end ( )
86
+ res . status ( 700 ) . end ( )
118
87
} )
119
88
120
89
request ( app )
121
90
. get ( '/' )
122
- . expect ( 410 , done )
91
+ . expect ( 700 , done )
123
92
} )
124
- } )
125
93
126
- describe . skip ( 'when "code" is 410.1' , function ( ) {
127
- it ( 'should set the response status code to 410' , function ( done ) {
94
+ it ( 'should set the response status code to 800' , function ( done ) {
128
95
var app = express ( )
129
96
130
97
app . use ( function ( req , res ) {
131
- res . status ( 410.1 ) . end ( )
98
+ res . status ( 800 ) . end ( )
132
99
} )
133
100
134
101
request ( app )
135
102
. get ( '/' )
136
- . expect ( 410 , function ( err ) {
137
- if ( isIoJs ) {
138
- done ( err ? null : new Error ( 'expected error' ) )
139
- } else {
140
- done ( err )
141
- }
142
- } )
103
+ . expect ( 800 , done )
143
104
} )
144
- } )
145
105
146
- describe . skip ( 'when "code" is 1000' , function ( ) {
147
- it ( 'should raise error for invalid status code' , function ( done ) {
106
+ it ( 'should set the response status code to 900' , function ( done ) {
148
107
var app = express ( )
149
108
150
109
app . use ( function ( req , res ) {
151
- res . status ( 1000 ) . end ( )
110
+ res . status ( 900 ) . end ( )
152
111
} )
153
112
154
113
request ( app )
155
114
. get ( '/' )
156
- . expect ( 500 , / I n v a l i d s t a t u s c o d e / , function ( err ) {
157
- if ( isIoJs ) {
158
- done ( err ? null : new Error ( 'expected error' ) )
159
- } else {
160
- done ( err )
161
- }
162
- } )
115
+ . expect ( 900 , done )
163
116
} )
164
117
} )
165
118
166
- describe . skip ( 'when "code" is 99 ', function ( ) {
167
- it ( 'should raise error for invalid status code' , function ( done ) {
168
- var app = express ( )
119
+ describe ( 'invalid status codes ', function ( ) {
120
+ it ( 'should raise error for status code below 100 ' , function ( done ) {
121
+ var app = express ( ) ;
169
122
170
123
app . use ( function ( req , res ) {
171
- res . status ( 99 ) . end ( )
172
- } )
124
+ res . status ( 99 ) . end ( ) ;
125
+ } ) ;
173
126
174
127
request ( app )
175
128
. get ( '/' )
176
- . expect ( 500 , / I n v a l i d s t a t u s c o d e / , function ( err ) {
177
- if ( isIoJs ) {
178
- done ( err ? null : new Error ( 'expected error' ) )
179
- } else {
180
- done ( err )
181
- }
182
- } )
183
- } )
184
- } )
129
+ . expect ( 500 , / I n v a l i d s t a t u s c o d e / , done ) ;
130
+ } ) ;
185
131
186
- describe . skip ( 'when "code" is -401' , function ( ) {
187
- it ( 'should raise error for invalid status code' , function ( done ) {
188
- var app = express ( )
132
+ it ( 'should raise error for status code above 999' , function ( done ) {
133
+ var app = express ( ) ;
189
134
190
135
app . use ( function ( req , res ) {
191
- res . status ( - 401 ) . end ( )
192
- } )
136
+ res . status ( 1000 ) . end ( ) ;
137
+ } ) ;
193
138
194
139
request ( app )
195
140
. get ( '/' )
196
- . expect ( 500 , / I n v a l i d s t a t u s c o d e / , function ( err ) {
197
- if ( isIoJs ) {
198
- done ( err ? null : new Error ( 'expected error' ) )
199
- } else {
200
- done ( err )
201
- }
202
- } )
203
- } )
204
- } )
205
- } )
206
- } )
141
+ . expect ( 500 , / I n v a l i d s t a t u s c o d e / , done ) ;
142
+ } ) ;
143
+
144
+ it ( 'should raise error for non-integer status codes' , function ( done ) {
145
+ var app = express ( ) ;
146
+
147
+ app . use ( function ( req , res ) {
148
+ res . status ( 200.1 ) . end ( ) ;
149
+ } ) ;
150
+
151
+ request ( app )
152
+ . get ( '/' )
153
+ . expect ( 500 , / I n v a l i d s t a t u s c o d e / , done ) ;
154
+ } ) ;
155
+
156
+ it ( 'should raise error for undefined status code' , function ( done ) {
157
+ var app = express ( ) ;
158
+
159
+ app . use ( function ( req , res ) {
160
+ res . status ( undefined ) . end ( ) ;
161
+ } ) ;
162
+
163
+ request ( app )
164
+ . get ( '/' )
165
+ . expect ( 500 , / I n v a l i d s t a t u s c o d e / , done ) ;
166
+ } ) ;
167
+
168
+ it ( 'should raise error for null status code' , function ( done ) {
169
+ var app = express ( ) ;
170
+
171
+ app . use ( function ( req , res ) {
172
+ res . status ( null ) . end ( ) ;
173
+ } ) ;
174
+
175
+ request ( app )
176
+ . get ( '/' )
177
+ . expect ( 500 , / I n v a l i d s t a t u s c o d e / , done ) ;
178
+ } ) ;
179
+
180
+ it ( 'should raise error for string status code' , function ( done ) {
181
+ var app = express ( ) ;
182
+
183
+ app . use ( function ( req , res ) {
184
+ res . status ( "200" ) . end ( ) ;
185
+ } ) ;
186
+
187
+ request ( app )
188
+ . get ( '/' )
189
+ . expect ( 500 , / I n v a l i d s t a t u s c o d e / , done ) ;
190
+ } ) ;
191
+
192
+ it ( 'should raise error for NaN status code' , function ( done ) {
193
+ var app = express ( ) ;
194
+
195
+ app . use ( function ( req , res ) {
196
+ res . status ( NaN ) . end ( ) ;
197
+ } ) ;
198
+
199
+ request ( app )
200
+ . get ( '/' )
201
+ . expect ( 500 , / I n v a l i d s t a t u s c o d e / , done ) ;
202
+ } ) ;
203
+ } ) ;
204
+ } ) ;
205
+ } ) ;
206
+
0 commit comments