diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-07-19 13:28:42 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-07-24 15:19:15 -0700 |
commit | ed29dfce436cb68c91fa2a1bdaa995124121c218 (patch) | |
tree | 89ed6373bb60bf24e23e8f50ab59ae3a593714f0 /platform/node/test/js/request.test.js | |
parent | 5ee05a7781396004cb617002b6cbe8b7402616a6 (diff) | |
download | qtlocation-mapboxgl-ed29dfce436cb68c91fa2a1bdaa995124121c218.tar.gz |
[node] Rewrite request tests
Diffstat (limited to 'platform/node/test/js/request.test.js')
-rw-r--r-- | platform/node/test/js/request.test.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/platform/node/test/js/request.test.js b/platform/node/test/js/request.test.js new file mode 100644 index 0000000000..9715633e39 --- /dev/null +++ b/platform/node/test/js/request.test.js @@ -0,0 +1,68 @@ +'use strict'; + +var mockfs = require('../mockfs'); +var mbgl = require('../../index'); +var test = require('tape'); + +[ 'sprite_png', 'sprite_json', 'source_vector', 'glyph' ].forEach(function (resource) { + test(`render reports an error when the request function responds with an error (${resource})`, function(t) { + var map = new mbgl.Map({ + request: function(req, callback) { + var data = mockfs.dataForRequest(req); + if (mockfs[resource] === data) { + callback(new Error('message')); + } else { + callback(null, { data: data }); + } + } + }); + map.load(mockfs.style_vector); + map.render({ zoom: 16 }, function(err, pixels) { + t.assert(err); + t.assert(/message/.test(err.message)); + t.assert(!pixels); + t.end(); + }); + }); +}); + +[ 'vector', 'raster' ].forEach(function (type) { + test(`render does not report an error when the request function responds with no data for a tile (${type})`, function(t) { + var map = new mbgl.Map({ + request: function(req, callback) { + var data = mockfs.dataForRequest(req); + if (mockfs[`tile_${type}`] === data) { + callback(); + } else { + callback(null, { data: data }); + } + } + }); + map.load(mockfs[`style_${type}`]); + map.render({ zoom: 16 }, function(err, pixels) { + t.error(err); + t.assert(pixels); + t.end(); + }); + }); + + test(`render reports an error when the request function responds with an error for a tile (${type})`, function(t) { + var map = new mbgl.Map({ + request: function(req, callback) { + var data = mockfs.dataForRequest(req); + if (mockfs[`tile_${type}`] === data) { + callback(new Error('message')); + } else { + callback(null, { data: data }); + } + } + }); + map.load(mockfs[`style_${type}`]); + map.render({ zoom: 16 }, function(err, pixels) { + t.assert(err); + t.assert(/message/.test(err.message)); + t.assert(!pixels); + t.end(); + }); + }); +}); |