From dd2f1e47eb87cb1f5cccd15c11327d3fbc08177d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Wed, 10 Apr 2019 08:55:30 -0400 Subject: [PATCH 1/2] don't try to call doneFnCompleted when it isn't set --- src/plots/cartesian/select.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plots/cartesian/select.js b/src/plots/cartesian/select.js index 2a55961d6bd..742f9e8c3e9 100644 --- a/src/plots/cartesian/select.js +++ b/src/plots/cartesian/select.js @@ -49,8 +49,6 @@ function prepSelect(e, startX, startY, dragOptions, mode) { var allAxes = dragOptions.xaxes.concat(dragOptions.yaxes); var subtract = e.altKey; - var doneFnCompleted = dragOptions.doneFnCompleted; - var filterPoly, selectionTester, mergedPolygons, currentPolygon; var i, searchInfo, eventData; @@ -288,7 +286,9 @@ function prepSelect(e, startX, startY, dragOptions, mode) { [].push.apply(dragOptions.mergedPolygons, mergedPolygons); } - doneFnCompleted(selection); + if(dragOptions.doneFnCompleted) { + dragOptions.doneFnCompleted(selection); + } }); }; } From 98563547a97bf94bb60976b04f29ec46b27d992c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Wed, 10 Apr 2019 16:28:07 -0400 Subject: [PATCH 2/2] log error during select throttle doneFn promise ... and spyOn of Lib.error to lock down #3755 --- src/plots/cartesian/select.js | 5 +++-- test/jasmine/tests/select_test.js | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plots/cartesian/select.js b/src/plots/cartesian/select.js index 742f9e8c3e9..fd8d3479772 100644 --- a/src/plots/cartesian/select.js +++ b/src/plots/cartesian/select.js @@ -15,6 +15,7 @@ var Registry = require('../../registry'); var Color = require('../../components/color'); var Fx = require('../../components/fx'); +var Lib = require('../../lib'); var polygon = require('../../lib/polygon'); var throttle = require('../../lib/throttle'); var makeEventData = require('../../components/fx/helpers').makeEventData; @@ -266,7 +267,7 @@ function prepSelect(e, startX, startY, dragOptions, mode) { } Fx.click(gd, evt); - }); + }).catch(Lib.error); }; dragOptions.doneFn = function() { @@ -289,7 +290,7 @@ function prepSelect(e, startX, startY, dragOptions, mode) { if(dragOptions.doneFnCompleted) { dragOptions.doneFnCompleted(selection); } - }); + }).catch(Lib.error); }; } diff --git a/test/jasmine/tests/select_test.js b/test/jasmine/tests/select_test.js index 2b015e00a42..1bc48e0fd3c 100644 --- a/test/jasmine/tests/select_test.js +++ b/test/jasmine/tests/select_test.js @@ -1597,6 +1597,7 @@ describe('Test select box and lasso per trace:', function() { beforeEach(function() { gd = createGraphDiv(); + spyOn(Lib, 'error'); }); afterEach(destroyGraphDiv); @@ -1716,6 +1717,7 @@ describe('Test select box and lasso per trace:', function() { .then(eventCounts[2] ? deselectPromise : Promise.resolve()) .then(function() { assertEventCounts(eventCounts[0], eventCounts[1], eventCounts[2], msg + ' (after dblclick)'); + expect(Lib.error).not.toHaveBeenCalled(); }); }