Skip to content

Commit

Permalink
attempt for making polar drag test more robust
Browse files Browse the repository at this point in the history
... this does help a little, those tests appear to pass more often
    on ci, but this doesn't work 100% of the time.

Something in a suite that get executed before
(before 'polar' alphabetically) must not be cleaning up correctly.
  • Loading branch information
etpinard committed Jan 18, 2018
1 parent 44b0ae6 commit 40f60de
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 39 deletions.
16 changes: 12 additions & 4 deletions test/jasmine/assets/drag.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,26 @@ var getNodeCoords = require('./get_node_coords');
* optionally specify an edge ('n', 'se', 'w' etc)
* to grab it by an edge or corner (otherwise the middle is used)
*/
module.exports = function(node, dx, dy, edge, x0, y0) {
module.exports = function(node, dx, dy, edge, x0, y0, nsteps) {
nsteps = nsteps || 1;

var coords = getNodeCoords(node, edge);
var fromX = isNumeric(x0) ? x0 : coords.x;
var fromY = isNumeric(y0) ? y0 : coords.y;
var toX = fromX + dx;
var toY = fromY + dy;

mouseEvent('mousemove', fromX, fromY, {element: node});
mouseEvent('mousedown', fromX, fromY, {element: node});

var promise = waitForDragCover().then(function(dragCoverNode) {
mouseEvent('mousemove', toX, toY, {element: dragCoverNode});
var toX;
var toY;

for(var i = 1; i <= nsteps; i++) {
toX = fromX + i * dx / nsteps;
toY = fromY + i * dy / nsteps;
mouseEvent('mousemove', toX, toY, {element: dragCoverNode});
}

mouseEvent('mouseup', toX, toY, {element: dragCoverNode});
return waitForDragCoverRemoval();
});
Expand Down
75 changes: 40 additions & 35 deletions test/jasmine/tests/polar_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,7 @@ describe('Test polar interactions:', function() {
];

beforeEach(function() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000;
eventData = '';
eventCnts = {};
gd = createGraphDiv();
Expand All @@ -528,7 +529,7 @@ describe('Test polar interactions:', function() {
afterEach(destroyGraphDiv);

function _plot(fig) {
return Plotly.plot(gd, fig).then(function() {
return Plotly.newPlot(gd, fig).then(function() {
eventNames.forEach(function(k) {
eventCnts[k] = 0;
gd.on(k, function(d) {
Expand Down Expand Up @@ -704,6 +705,9 @@ describe('Test polar interactions:', function() {
it('should response to drag interactions on plot area', function(done) {
var fig = Lib.extendDeep({}, require('@mocks/polar_scatter.json'));

// to avoid dragging on hover labels
fig.layout.hovermode = false;

// adjust margins so that middle of plot area is at 300x300
// with its middle at [200,200]
fig.layout.width = 400;
Expand Down Expand Up @@ -741,14 +745,16 @@ describe('Test polar interactions:', function() {
}

function _reset() {
return _doubleClick(mid).then(function() {
relayoutNumber++;
resetNumber++;

var extra = '(reset ' + resetNumber + ')';
_assertBase(extra);
expect(eventCnts.plotly_doubleclick).toBe(resetNumber, 'doubleclick event #' + extra);
});
return delay(100)()
.then(function() { return _doubleClick(mid); })
.then(function() {
relayoutNumber++;
resetNumber++;

var extra = '(reset ' + resetNumber + ')';
_assertBase(extra);
expect(eventCnts.plotly_doubleclick).toBe(resetNumber, 'doubleclick event #' + extra);
});
}

_plot(fig)
Expand Down Expand Up @@ -790,6 +796,9 @@ describe('Test polar interactions:', function() {
it('should response to drag interactions on radial drag area', function(done) {
var fig = Lib.extendDeep({}, require('@mocks/polar_scatter.json'));

// to avoid dragging on hover labels
fig.layout.hovermode = false;

// adjust margins so that middle of plot area is at 300x300
// with its middle at [200,200]
fig.layout.width = 400;
Expand All @@ -803,18 +812,7 @@ describe('Test polar interactions:', function() {
// to activate the radial drag mode
function _drag(p0, dp) {
var node = d3.select('.polar > .draglayer > .radialdrag').node();
var p1 = [p0[0] + dp[0] / 2, p0[1] + dp[1] / 2];
var p2 = [p0[0] + dp[0], p0[1] + dp[1]];

mouseEvent('mousemove', p0[0], p0[1], {element: node});
mouseEvent('mousedown', p0[0], p0[1], {element: node});

return delay(250)()
.then(function() { mouseEvent('mousemove', p1[0], p1[1], {element: document}); })
.then(delay(50))
.then(function() { mouseEvent('mousemove', p2[0], p2[1], {element: document}); })
.then(function() { mouseEvent('mouseup', p2[0], p2[1], {element: document}); })
.then(delay(50));
return drag(node, dp[0], dp[1], null, p0[0], p0[1], 2);
}

function _assert(rng, angle, evtRng1, evtAngle, msg) {
Expand All @@ -839,13 +837,15 @@ describe('Test polar interactions:', function() {
}

function _reset() {
return _doubleClick([200, 200]).then(function() {
resetNumber++;

var extra = '(reset ' + resetNumber + ')';
_assertBase(extra);
expect(eventCnts.plotly_doubleclick).toBe(resetNumber, 'doubleclick event #' + extra);
});
return delay(100)()
.then(function() { return _doubleClick([200, 200]); })
.then(function() {
resetNumber++;

var extra = '(reset ' + resetNumber + ')';
_assertBase(extra);
expect(eventCnts.plotly_doubleclick).toBe(resetNumber, 'doubleclick event #' + extra);
});
}

_plot(fig)
Expand Down Expand Up @@ -880,6 +880,9 @@ describe('Test polar interactions:', function() {
it('should response to drag interactions on angular drag area', function(done) {
var fig = Lib.extendDeep({}, require('@mocks/polar_scatter.json'));

// to avoid dragging on hover labels
fig.layout.hovermode = false;

// adjust margins so that middle of plot area is at 300x300
// with its middle at [200,200]
fig.layout.width = 400;
Expand Down Expand Up @@ -909,13 +912,15 @@ describe('Test polar interactions:', function() {
}

function _reset() {
return _doubleClick([200, 200]).then(function() {
resetNumber++;

var extra = '(reset ' + resetNumber + ')';
_assertBase(extra);
expect(eventCnts.plotly_doubleclick).toBe(resetNumber, 'doubleclick event #' + extra);
});
return delay(100)()
.then(function() { return _doubleClick([200, 200]); })
.then(function() {
resetNumber++;

var extra = '(reset ' + resetNumber + ')';
_assertBase(extra);
expect(eventCnts.plotly_doubleclick).toBe(resetNumber, 'doubleclick event #' + extra);
});
}

_plot(fig)
Expand Down

0 comments on commit 40f60de

Please sign in to comment.