@@ -32,4 +32,45 @@ describe('arrayize', function() {
3232 assert . deepEqual ( o , [ 'text' ] ) ;
3333 done ( ) ;
3434 } ) ;
35- } ) ;
35+ } ) ;
36+
37+ describe ( 'handleResp' , function ( ) {
38+
39+ it ( 'should handle errors' , function ( done ) {
40+ var defaultErr = new Error ( 'new error' ) ;
41+ util . handleResp ( defaultErr , null , null , function ( err ) {
42+ assert . equal ( err , defaultErr ) ;
43+ done ( ) ;
44+ } ) ;
45+ } ) ;
46+
47+ it ( 'should handle body errors' , function ( done ) {
48+ var apiErr = {
49+ errors : [ { foo : 'bar' } ] ,
50+ code : 400 ,
51+ message : 'an error occurred'
52+ }
53+ util . handleResp ( null , { } , { error : apiErr } , function ( err ) {
54+ assert . deepEqual ( err . errors , apiErr . errors ) ;
55+ assert . strictEqual ( err . code , apiErr . code ) ;
56+ assert . deepEqual ( err . message , apiErr . message ) ;
57+ done ( ) ;
58+ } ) ;
59+ } ) ;
60+
61+ it ( 'should try to parse JSON if body is string' , function ( done ) {
62+ var body = '{ "foo": "bar" }' ;
63+ util . handleResp ( null , { } , body , function ( err , body ) {
64+ assert . strictEqual ( body . foo , 'bar' ) ;
65+ done ( ) ;
66+ } ) ;
67+ } ) ;
68+
69+ it ( 'should return status code as an error if there are not other errors' , function ( done ) {
70+ util . handleResp ( null , { statusCode : 400 } , null , function ( err ) {
71+ assert . strictEqual ( err . message , 'error during request, statusCode: 400' ) ;
72+ done ( ) ;
73+ } ) ;
74+ } ) ;
75+
76+ } ) ;
0 commit comments