Skip to content

Commit 8e9d458

Browse files
committed
test: test all cartesian axis types in modebar click cases
1 parent 665e56c commit 8e9d458

File tree

1 file changed

+40
-26
lines changed

1 file changed

+40
-26
lines changed

test/jasmine/tests/modebar_test.js

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
var d3 = require('d3');
2+
var isNumeric = require('fast-isnumeric');
23

34
var createModeBar = require('@src/components/modebar/modebar');
45
var manageModeBar = require('@src/components/modebar/manage');
6+
var customMatchers = require('../assets/custom_matchers');
57

68
var Plotly = require('@lib/index');
79
var Plots = require('@src/plots/plots');
@@ -613,12 +615,21 @@ describe('ModeBar', function() {
613615
describe('modebar on clicks', function() {
614616
var gd, modeBar;
615617

618+
beforeAll(function() {
619+
jasmine.addMatchers(customMatchers);
620+
});
621+
616622
afterEach(destroyGraphDiv);
617623

618-
function assertRange(actual, expected) {
624+
function assertRange(axName, expected) {
619625
var PRECISION = 2;
620-
expect(actual[0]).toBeCloseTo(expected[0], PRECISION);
621-
expect(actual[1]).toBeCloseTo(expected[1], PRECISION);
626+
627+
var actual = gd._fullLayout[axName].range;
628+
629+
if(isNumeric(expected[0])) {
630+
expect(actual).toBeCloseToArray(expected, PRECISION, axName);
631+
}
632+
else expect(actual).toEqual(expected, axName);
622633
}
623634

624635
function assertActive(buttons, activeButton) {
@@ -634,9 +645,11 @@ describe('ModeBar', function() {
634645
beforeEach(function(done) {
635646
var mockData = [{
636647
type: 'scatter',
637-
y: [2, 1, 2]
648+
x: ['2016-01-01', '2016-02-01', '2016-03-01'],
649+
y: [10, 100, 1000],
638650
}, {
639651
type: 'bar',
652+
x: ['a', 'b', 'c'],
640653
y: [2, 1, 2],
641654
xaxis: 'x2',
642655
yaxis: 'y2'
@@ -646,11 +659,12 @@ describe('ModeBar', function() {
646659
xaxis: {
647660
anchor: 'y',
648661
domain: [0, 0.5],
649-
range: [0, 5]
662+
range: ['2016-01-01', '2016-04-01']
650663
},
651664
yaxis: {
652665
anchor: 'x',
653-
range: [0, 3]
666+
type: 'log',
667+
range: [1, 3]
654668
},
655669
xaxis2: {
656670
anchor: 'y2',
@@ -679,35 +693,35 @@ describe('ModeBar', function() {
679693
buttonAutoScale = selectButton(modeBar, 'autoScale2d'),
680694
buttonResetScale = selectButton(modeBar, 'resetScale2d');
681695

682-
assertRange(gd._fullLayout.xaxis.range, [0, 5]);
683-
assertRange(gd._fullLayout.yaxis.range, [0, 3]);
684-
assertRange(gd._fullLayout.xaxis2.range, [-1, 4]);
685-
assertRange(gd._fullLayout.yaxis2.range, [0, 4]);
696+
assertRange('xaxis', ['2016-01-01', '2016-04-01']);
697+
assertRange('yaxis', [1, 3]);
698+
assertRange('xaxis2', [-1, 4]);
699+
assertRange('yaxis2', [0, 4]);
686700

687701
buttonZoomIn.click();
688-
assertRange(gd._fullLayout.xaxis.range, [1.25, 3.75]);
689-
assertRange(gd._fullLayout.yaxis.range, [0.75, 2.25]);
690-
assertRange(gd._fullLayout.xaxis2.range, [0.25, 2.75]);
691-
assertRange(gd._fullLayout.yaxis2.range, [1, 3]);
702+
assertRange('xaxis', ['2016-01-23 17:45', '2016-03-09 05:15']);
703+
assertRange('yaxis', [1.5, 2.5]);
704+
assertRange('xaxis2', [0.25, 2.75]);
705+
assertRange('yaxis2', [1, 3]);
692706

693707
buttonZoomOut.click();
694-
assertRange(gd._fullLayout.xaxis.range, [0, 5]);
695-
assertRange(gd._fullLayout.yaxis.range, [0, 3]);
696-
assertRange(gd._fullLayout.xaxis2.range, [-1, 4]);
697-
assertRange(gd._fullLayout.yaxis2.range, [0, 4]);
708+
assertRange('xaxis', ['2016-01-01', '2016-04-01']);
709+
assertRange('yaxis', [1, 3]);
710+
assertRange('xaxis2', [-1, 4]);
711+
assertRange('yaxis2', [0, 4]);
698712

699713
buttonZoomIn.click();
700714
buttonAutoScale.click();
701-
assertRange(gd._fullLayout.xaxis.range, [-0.1584327, 2.1584327]);
702-
assertRange(gd._fullLayout.yaxis.range, [0.92675159, 2.073248]);
703-
assertRange(gd._fullLayout.xaxis2.range, [-0.5, 2.5]);
704-
assertRange(gd._fullLayout.yaxis2.range, [0, 2.105263]);
715+
assertRange('xaxis', ['2015-12-27 06:36:39.6661', '2016-03-05 17:23:20.3339']);
716+
assertRange('yaxis', [0.8591, 3.1408]);
717+
assertRange('xaxis2', [-0.5, 2.5]);
718+
assertRange('yaxis2', [0, 2.105263]);
705719

706720
buttonResetScale.click();
707-
assertRange(gd._fullLayout.xaxis.range, [0, 5]);
708-
assertRange(gd._fullLayout.yaxis.range, [0, 3]);
709-
assertRange(gd._fullLayout.xaxis2.range, [-1, 4]);
710-
assertRange(gd._fullLayout.yaxis2.range, [0, 4]);
721+
assertRange('xaxis', ['2016-01-01', '2016-04-01']);
722+
assertRange('yaxis', [1, 3]);
723+
assertRange('xaxis2', [-1, 4]);
724+
assertRange('yaxis2', [0, 4]);
711725
});
712726
});
713727

0 commit comments

Comments
 (0)