@@ -169,5 +169,44 @@ describe('Client', function () {
169
169
} )
170
170
done ( )
171
171
} )
172
+
173
+ it ( 'should consider non-HTTP-200 repsonses to be valid' , function ( done ) {
174
+ nock ( TEST_HOST )
175
+ . get ( '/test' )
176
+ . delay ( 100 ) // it('should wait for the response before invoking the callback')
177
+ . reply ( 503 )
178
+ var requestGet = client . emptyRequest ( )
179
+ requestGet . method = 'GET'
180
+ requestGet . path = '/test'
181
+ client . API ( requestGet , function ( response ) {
182
+ assert . equal ( response . statusCode , '503' , 'response.StatusCode equal 503' )
183
+ assert . equal ( response . body , '' ,
184
+ 'response.body blank' )
185
+ assert . equal ( JSON . stringify ( response . headers ) ,
186
+ '{}' ,
187
+ 'response.headers blank' )
188
+ done ( )
189
+ } )
190
+ } )
191
+
192
+ it ( 'should respond with a mock HTTP 500 response upon Error' , function ( done ) {
193
+ nock ( TEST_HOST )
194
+ . get ( '/test' )
195
+ . replyWithError ( 'ERROR' )
196
+ var requestGet = client . emptyRequest ( )
197
+ requestGet . method = 'GET'
198
+ requestGet . path = '/test'
199
+ client . API ( requestGet , function ( response ) {
200
+ assert . equal ( response . statusCode , '500' , 'response.StatusCode equal 500' )
201
+ var body = JSON . parse ( response . body )
202
+ assert . equal ( body . message , 'ERROR' , 'response.body.message equal ERROR' )
203
+ assert . equal ( body . name , Error . name , 'response.body.name equal Error.name' )
204
+ assert . equal ( typeof body . stack , 'string' , 'response.body.stack is a String' )
205
+ assert . equal ( JSON . stringify ( response . headers ) ,
206
+ '{}' ,
207
+ 'response.headers blank' )
208
+ done ( )
209
+ } )
210
+ } )
172
211
} )
173
212
} )
0 commit comments