From c90da2cf9653489e570785fdebc6c2ff10f7c188 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 22 Jun 2017 16:53:24 +0200 Subject: [PATCH] rejection when highlighting with invalid model id --- .../src/main/js/map/overlay/UserDbOverlay.js | 6 ++++- .../test/js/map/overlay/UserDbOverlay-test.js | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/frontend-js/src/main/js/map/overlay/UserDbOverlay.js b/frontend-js/src/main/js/map/overlay/UserDbOverlay.js index 0e6713ec37..0eaebd1384 100644 --- a/frontend-js/src/main/js/map/overlay/UserDbOverlay.js +++ b/frontend-js/src/main/js/map/overlay/UserDbOverlay.js @@ -56,7 +56,11 @@ UserDbOverlay.prototype._createIdentifiedElements = function(params, sourceArray return Promise.reject(new Error("Element already highlighted: " + element.getId())); } result.push(element); - promises.push(self.getMap().getSubmapById(element.getModelId()).getModel().getByIdentifiedElement(element)); + var submap = self.getMap().getSubmapById(element.getModelId()); + if (submap === null) { + return Promise.reject(new InvalidArgumentError("Submap doesn't exist: " + result[i].getModelId())); + } + promises.push(submap.getModel().getByIdentifiedElement(element)); } return Promise.all(promises).then(function(elementsFromModel) { for (var i = 0; i < elementsFromModel.length; i++) { diff --git a/frontend-js/src/test/js/map/overlay/UserDbOverlay-test.js b/frontend-js/src/test/js/map/overlay/UserDbOverlay-test.js index 6ee50e21e1..4d6b8106d6 100644 --- a/frontend-js/src/test/js/map/overlay/UserDbOverlay-test.js +++ b/frontend-js/src/test/js/map/overlay/UserDbOverlay-test.js @@ -85,4 +85,30 @@ describe('UserDbOverlay', function() { }); }); + it("add to unexisting map", function() { + var overlay; + return ServerConnector.getProject().then(function(project) { + var options = helper.createCustomMapOptions(project); + var map = new CustomMap(options); + overlay = new UserDbOverlay({ + map : map, + name : 'user' + }); + return overlay.addMarker({ + element : { + id : 329171, + modelId : -1, + type : "ALIAS" + }, + options : { + type : "SURFACE" + } + }); + }).then(function() { + assert.ok(false, "Exception expected"); + }, function(error) { + assert.ok(error instanceof InvalidArgumentError) + }); + }); + }); -- GitLab