Skip to content

Commit b2988b4

Browse files
committed
add a few range selector interaction tests
1 parent fb056b1 commit b2988b4

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

test/jasmine/tests/range_selector_test.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
var RangeSelector = require('@src/components/rangeselector');
22
var getUpdateObject = require('@src/components/rangeselector/get_update_object');
33

4+
var Plotly = require('@lib');
5+
var Lib = require('@src/lib');
6+
var d3 = require('d3');
7+
var createGraphDiv = require('../assets/create_graph_div');
8+
var destroyGraphDiv = require('../assets/destroy_graph_div');
9+
var getRectCenter = require('../assets/get_rect_center');
10+
var mouseEvent = require('../assets/mouse_event');
411

512

613
describe('[range selector suite]', function() {
@@ -286,5 +293,53 @@ describe('[range selector suite]', function() {
286293

287294
});
288295

296+
describe('interactions:', function() {
297+
var mock = require('@mocks/range_selector.json');
298+
299+
var gd, mockCopy;
300+
301+
beforeEach(function(done) {
302+
gd = createGraphDiv();
303+
mockCopy = Lib.extendDeep({}, mock);
304+
305+
Plotly.plot(gd, mockCopy.data, mockCopy.layout).then(done);
306+
});
307+
308+
afterEach(destroyGraphDiv);
309+
310+
function assertNodeCount(query, cnt) {
311+
expect(d3.selectAll(query).size()).toEqual(cnt);
312+
}
313+
314+
it('should display ', function() {
315+
assertNodeCount('.rangeselector', 1);
316+
assertNodeCount('.button', mockCopy.layout.xaxis.rangeselector.buttons.length);
317+
});
318+
319+
it('should be able to be removed by `relayout`', function(done) {
320+
321+
Plotly.relayout(gd, 'xaxis.rangeselector.visible', false).then(function() {
322+
assertNodeCount('.rangeselector', 0);
323+
assertNodeCount('.button', 0);
324+
done();
325+
});
326+
327+
});
328+
329+
it('should update range when clicked', function() {
330+
var range0 = gd.layout.xaxis.range[0];
331+
var buttons = d3.selectAll('.button').select('rect');
332+
333+
var pos0 = getRectCenter(buttons[0][0]);
334+
var posReset = getRectCenter(buttons[0][buttons.size()-1]);
335+
336+
mouseEvent('click', pos0[0], pos0[1]);
337+
expect(gd.layout.xaxis.range[0]).toBeGreaterThan(range0);
338+
339+
mouseEvent('click', posReset[0], posReset[1]);
340+
expect(gd.layout.xaxis.range[0]).toEqual(range0);
341+
});
342+
343+
});
289344

290345
});

0 commit comments

Comments
 (0)