Skip to content

Commit

Permalink
Return json for error response
Browse files Browse the repository at this point in the history
  • Loading branch information
Rajiv Tirumalareddy committed May 21, 2015
1 parent b3cf405 commit deef81c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 17 deletions.
8 changes: 6 additions & 2 deletions libs/fetcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,9 @@ function parseParamValues (params) {
res.set(meta.headers);
}
if (err) {
res.status(err.statusCode || 400).send(err.message || 'request failed');
res.status(err.statusCode || 400).json({
message: err.message || 'request failed'
});
return;
}
res.status(meta.statusCode || 200).json(data);
Expand Down Expand Up @@ -135,7 +137,9 @@ function parseParamValues (params) {
res.set(meta.headers);
}
if(err) {
res.status(err.statusCode || 400).send(err.message || 'request failed');
res.status(err.statusCode || 400).json({
message: err.message || 'request failed'
});
return;
}
var responseObj = {};
Expand Down
30 changes: 15 additions & 15 deletions tests/unit/libs/fetcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -209,21 +209,21 @@ describe('Server Fetcher', function () {
}
},
res = {
json: function(response) {
console.log('Not Expected: middleware responded with', response);
json: function(data) {
expect(data).to.eql(expMessage);
done();
},
status: function(code) {
expect(code).to.equal(expStatusCode);
statusCodeSet = true;
return this;
},
send: function (data) {
expect(data).to.equal(expMessage);
done();
console.log('send() not expected: middleware responded with', data);
}
},
next = function () {
console.log('Not Expected: middleware skipped request');
console.log('next() not expected: middleware skipped request');
},
middleware = Fetcher.middleware({pathPrefix: '/api'});
middleware(req, res, next);
Expand All @@ -232,13 +232,13 @@ describe('Server Fetcher', function () {
};

it('should respond to POST api request with default error details',
makePostApiErrorTest({}, 400, 'request failed'));
makePostApiErrorTest({}, 400, {message: 'request failed'}));

it('should respond to POST api request with custom error status code',
makePostApiErrorTest({statusCode: 500}, 500, 'request failed'));
makePostApiErrorTest({statusCode: 500}, 500, {message: 'request failed'}));

it('should respond to POST api request with custom error message',
makePostApiErrorTest({message: 'Error message...'}, 400, 'Error message...'));
makePostApiErrorTest({message: 'Error message...'}, 400, {message: 'Error message...'}));
});

describe('#GET', function() {
Expand Down Expand Up @@ -343,17 +343,17 @@ describe('Server Fetcher', function () {
path: '/' + mockErrorService.name + ';' + qs.stringify(params, ';')
},
res = {
json: function(response) {
console.log('Not Expected: middleware responded with', response);
json: function(data) {
expect(data).to.eql(expMessage);
done();
},
status: function(code) {
expect(code).to.equal(expStatusCode);
statusCodeSet = true;
return this;
},
send: function (data) {
expect(data).to.equal(expMessage);
done();
console.log('send() not expected: middleware responded with', data);
}
},
next = function () {
Expand All @@ -366,13 +366,13 @@ describe('Server Fetcher', function () {
};

it('should respond to GET api request with default error details',
makeGetApiErrorTest({}, 400, 'request failed'));
makeGetApiErrorTest({}, 400, {message: 'request failed'}));

it('should respond to GET api request with custom error status code',
makeGetApiErrorTest({statusCode: 500}, 500, 'request failed'));
makeGetApiErrorTest({statusCode: 500}, 500, {message: 'request failed'}));

it('should respond to GET api request with custom error message',
makeGetApiErrorTest({message: 'Error message...'}, 400, 'Error message...'));
makeGetApiErrorTest({message: 'Error message...'}, 400, {message: 'Error message...'}));
});
});

Expand Down

0 comments on commit deef81c

Please sign in to comment.