[node] Reset Style::Impl::lastError when loading a new style

This commit is contained in:
John Firebaugh
2017-07-21 10:12:43 -07:00
parent 264ca961bd
commit a178248139
2 changed files with 53 additions and 0 deletions

View File

@@ -114,3 +114,54 @@ test(`render ignores request functions calling the callback a second time`, func
});
});
test(`render reports an error from loading the current style`, function(t) {
var map = new mbgl.Map({
request: function(req, callback) {
var data = mockfs.dataForRequest(req);
if (mockfs.source_vector === 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);
map.render({ zoom: 16 }, function(err, pixels) {
t.assert(err);
t.assert(/message/.test(err.message));
t.assert(!pixels);
t.end();
});
});
});
test(`render does not report an error from rendering a previous style`, function(t) {
var map = new mbgl.Map({
request: function(req, callback) {
var data = mockfs.dataForRequest(req);
if (mockfs.source_vector === 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);
map.load(mockfs.style_raster);
map.render({ zoom: 16 }, function(err, pixels) {
t.error(err);
t.assert(pixels);
t.end();
});
});
});

View File

@@ -38,6 +38,7 @@ Style::Impl::Impl(Scheduler& scheduler_, FileSource& fileSource_, float pixelRat
Style::Impl::~Impl() = default;
void Style::Impl::loadJSON(const std::string& json_) {
lastError = nullptr;
observer->onStyleLoading();
url.clear();
@@ -45,6 +46,7 @@ void Style::Impl::loadJSON(const std::string& json_) {
}
void Style::Impl::loadURL(const std::string& url_) {
lastError = nullptr;
observer->onStyleLoading();
loaded = false;