diff options
Diffstat (limited to 'platform/node/test/suite_implementation.js')
-rw-r--r-- | platform/node/test/suite_implementation.js | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/platform/node/test/suite_implementation.js b/platform/node/test/suite_implementation.js index b717ecd2b2..451f7d52e0 100644 --- a/platform/node/test/suite_implementation.js +++ b/platform/node/test/suite_implementation.js @@ -15,15 +15,25 @@ module.exports = function (style, options, callback) { ratio: options.pixelRatio, request: function(req, callback) { request(req.url, {encoding: null}, function (err, response, body) { + var result; if (err) { - callback(err); + err.code = mbgl.ErrorCode.Connection; + } else if (response.statusCode == 200) { + result = { data: body }; + } else if (response.statusCode == 204) { + result = {}; // no content } else if (response.statusCode == 404) { - callback(); - } else if (response.statusCode != 200) { - callback(new Error(response.statusMessage)); + err = new Error(response.statusMessage); + err.code = mbgl.ErrorCode.NotFound; + } else if (response.statusCode == 429) { + err = new Error(response.statusMessage); + err.code = mbgl.ErrorCode.RateLimit; } else { - callback(null, {data: body}); + err = new Error(response.statusMessage); + err.code = (response.statusCode >= 500 && response.statusCode < 600) ? + mbgl.ErrorCode.ServerError : mbgl.ErrorCode.OtherError; } + callback(err, result); }); } }); |