diff --git a/lib/common/util.js b/lib/common/util.js index bb4e80e26ab..5b1b8f53e0d 100644 --- a/lib/common/util.js +++ b/lib/common/util.js @@ -145,15 +145,17 @@ function handleResp(err, resp, body, callback) { } catch(err) {} } if (body && body.error) { + // Error from JSON api. callback(new ApiError(body.error)); return; } if (resp && (resp.statusCode < 200 || resp.statusCode > 299)) { - var error = 'error during request, statusCode: ' + resp.statusCode; - if (body) { - error += ', body: ' + body; - } - callback(new Error(error)); + // Unknown error. Format according to ApiError standard. + callback(new ApiError({ + errors: [], + code: resp.statusCode, + message: body || 'Error during request.' + })); return; } callback(null, body, resp); diff --git a/test/common/util.js b/test/common/util.js index 8c4942c6d81..8eb99d463cd 100644 --- a/test/common/util.js +++ b/test/common/util.js @@ -55,7 +55,7 @@ describe('handleResp', function() { it('should handle body errors', function(done) { var apiErr = { errors: [{ foo: 'bar' }], - code: 400, + code: 400, message: 'an error occurred' }; util.handleResp(null, {}, { error: apiErr }, function(err) { @@ -76,7 +76,8 @@ describe('handleResp', function() { it('should return error code if there are not other errors', function(done) { util.handleResp(null, { statusCode: 400 }, null, function(err) { - assert.strictEqual(err.message, 'error during request, statusCode: 400'); + assert.strictEqual(err.code, 400); + assert.strictEqual(err.message, 'Error during request.'); done(); }); });