From 5ce532e3e44cd329505c42c92f7905ed24d95b39 Mon Sep 17 00:00:00 2001 From: Matt Walker Date: Mon, 13 Jan 2020 10:46:40 +0000 Subject: [PATCH] Mock PointerEvent in tests to include target The `target` Event property is readonly as it is set internally when an event is dispatched. This change uses a plain object with the essential properties that a PointerEvent has which is sufficent for map event handling --- test/spec/ol/interaction/draw.test.js | 3 ++- test/spec/ol/interaction/extent.test.js | 3 ++- test/spec/ol/interaction/modify.test.js | 1 + test/spec/ol/interaction/select.test.js | 6 ++++-- test/spec/ol/interaction/translate.test.js | 16 +++++++++------- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/test/spec/ol/interaction/draw.test.js b/test/spec/ol/interaction/draw.test.js index 7a12b66887..835d765b55 100644 --- a/test/spec/ol/interaction/draw.test.js +++ b/test/spec/ol/interaction/draw.test.js @@ -73,8 +73,9 @@ describe('ol.interaction.Draw', function() { // calculated in case body has top < 0 (test runner with small window) const position = viewport.getBoundingClientRect(); const shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false; - const event = new Event(); + const event = {}; event.type = type; + event.target = viewport.firstChild; event.clientX = position.left + x + width / 2; event.clientY = position.top + y + height / 2; event.shiftKey = shiftKey; diff --git a/test/spec/ol/interaction/extent.test.js b/test/spec/ol/interaction/extent.test.js index 56fd15765e..7bd5f9e86c 100644 --- a/test/spec/ol/interaction/extent.test.js +++ b/test/spec/ol/interaction/extent.test.js @@ -50,8 +50,9 @@ describe('ol.interaction.Extent', function() { // calculated in case body has top < 0 (test runner with small window) const position = viewport.getBoundingClientRect(); const shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false; - const pointerEvent = new Event(); + const pointerEvent = {}; pointerEvent.type = type; + pointerEvent.target = viewport.firstChild; pointerEvent.button = button; pointerEvent.clientX = position.left + x + width / 2; pointerEvent.clientY = position.top - y + height / 2; diff --git a/test/spec/ol/interaction/modify.test.js b/test/spec/ol/interaction/modify.test.js index 7deae8d5d7..18b2c28063 100644 --- a/test/spec/ol/interaction/modify.test.js +++ b/test/spec/ol/interaction/modify.test.js @@ -84,6 +84,7 @@ describe('ol.interaction.Modify', function() { const position = viewport.getBoundingClientRect(); const pointerEvent = new Event(); pointerEvent.type = type; + pointerEvent.target = viewport.firstChild; pointerEvent.clientX = position.left + x + width / 2; pointerEvent.clientY = position.top + y + height / 2; pointerEvent.shiftKey = modifiers.shift || false; diff --git a/test/spec/ol/interaction/select.test.js b/test/spec/ol/interaction/select.test.js index 50f7bb2c70..e64eb2dc28 100644 --- a/test/spec/ol/interaction/select.test.js +++ b/test/spec/ol/interaction/select.test.js @@ -91,11 +91,13 @@ describe('ol.interaction.Select', function() { // calculated in case body has top < 0 (test runner with small window) const position = viewport.getBoundingClientRect(); const shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false; - const event = new PointerEvent(type, { + const event = { + type: type, + target: viewport.firstChild, clientX: position.left + x + width / 2, clientY: position.top + y + height / 2, shiftKey: shiftKey - }); + }; map.handleMapBrowserEvent(new MapBrowserPointerEvent(type, map, event)); } diff --git a/test/spec/ol/interaction/translate.test.js b/test/spec/ol/interaction/translate.test.js index a3df2ccebe..79efde34bb 100644 --- a/test/spec/ol/interaction/translate.test.js +++ b/test/spec/ol/interaction/translate.test.js @@ -65,13 +65,15 @@ describe('ol.interaction.Translate', function() { // calculated in case body has top < 0 (test runner with small window) const position = viewport.getBoundingClientRect(); const shiftKey = opt_shiftKey !== undefined ? opt_shiftKey : false; - const event = new MapBrowserPointerEvent(type, map, - new PointerEvent(type, { - clientX: position.left + x + width / 2, - clientY: position.top + y + height / 2, - shiftKey: shiftKey, - preventDefault: function() {} - })); + const event = new MapBrowserPointerEvent(type, map, { + type: type, + target: viewport.firstChild, + pointerId: 0, + clientX: position.left + x + width / 2, + clientY: position.top + y + height / 2, + shiftKey: shiftKey, + preventDefault: function() {} + }); map.handleMapBrowserEvent(event); }