From ed29dfce436cb68c91fa2a1bdaa995124121c218 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 19 Jul 2017 13:28:42 -0700 Subject: [node] Rewrite request tests --- platform/node/test/js/request.test.js | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 platform/node/test/js/request.test.js (limited to 'platform/node/test/js/request.test.js') 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(); + }); + }); +}); -- cgit v1.2.1