1
1
var d3 = require ( 'd3' ) ;
2
+ var isNumeric = require ( 'fast-isnumeric' ) ;
2
3
3
4
var createModeBar = require ( '@src/components/modebar/modebar' ) ;
4
5
var manageModeBar = require ( '@src/components/modebar/manage' ) ;
6
+ var customMatchers = require ( '../assets/custom_matchers' ) ;
5
7
6
8
var Plotly = require ( '@lib/index' ) ;
7
9
var Plots = require ( '@src/plots/plots' ) ;
@@ -613,12 +615,21 @@ describe('ModeBar', function() {
613
615
describe ( 'modebar on clicks' , function ( ) {
614
616
var gd , modeBar ;
615
617
618
+ beforeAll ( function ( ) {
619
+ jasmine . addMatchers ( customMatchers ) ;
620
+ } ) ;
621
+
616
622
afterEach ( destroyGraphDiv ) ;
617
623
618
- function assertRange ( actual , expected ) {
624
+ function assertRange ( axName , expected ) {
619
625
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 ) ;
622
633
}
623
634
624
635
function assertActive ( buttons , activeButton ) {
@@ -634,9 +645,11 @@ describe('ModeBar', function() {
634
645
beforeEach ( function ( done ) {
635
646
var mockData = [ {
636
647
type : 'scatter' ,
637
- y : [ 2 , 1 , 2 ]
648
+ x : [ '2016-01-01' , '2016-02-01' , '2016-03-01' ] ,
649
+ y : [ 10 , 100 , 1000 ] ,
638
650
} , {
639
651
type : 'bar' ,
652
+ x : [ 'a' , 'b' , 'c' ] ,
640
653
y : [ 2 , 1 , 2 ] ,
641
654
xaxis : 'x2' ,
642
655
yaxis : 'y2'
@@ -646,11 +659,12 @@ describe('ModeBar', function() {
646
659
xaxis : {
647
660
anchor : 'y' ,
648
661
domain : [ 0 , 0.5 ] ,
649
- range : [ 0 , 5 ]
662
+ range : [ '2016-01-01' , '2016-04-01' ]
650
663
} ,
651
664
yaxis : {
652
665
anchor : 'x' ,
653
- range : [ 0 , 3 ]
666
+ type : 'log' ,
667
+ range : [ 1 , 3 ]
654
668
} ,
655
669
xaxis2 : {
656
670
anchor : 'y2' ,
@@ -679,35 +693,35 @@ describe('ModeBar', function() {
679
693
buttonAutoScale = selectButton ( modeBar , 'autoScale2d' ) ,
680
694
buttonResetScale = selectButton ( modeBar , 'resetScale2d' ) ;
681
695
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 ] ) ;
686
700
687
701
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 ] ) ;
692
706
693
707
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 ] ) ;
698
712
699
713
buttonZoomIn . click ( ) ;
700
714
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 ] ) ;
705
719
706
720
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 ] ) ;
711
725
} ) ;
712
726
} ) ;
713
727
0 commit comments