@@ -2,6 +2,7 @@ var d3 = require('d3');
2
2
3
3
var createModeBar = require ( '@src/components/modebar/modebar' ) ;
4
4
var manageModeBar = require ( '@src/components/modebar/manage' ) ;
5
+ var customMatchers = require ( '../assets/custom_matchers' ) ;
5
6
6
7
var Plotly = require ( '@lib/index' ) ;
7
8
var Plots = require ( '@src/plots/plots' ) ;
@@ -613,12 +614,25 @@ describe('ModeBar', function() {
613
614
describe ( 'modebar on clicks' , function ( ) {
614
615
var gd , modeBar ;
615
616
617
+ beforeAll ( function ( ) {
618
+ jasmine . addMatchers ( customMatchers ) ;
619
+ } ) ;
620
+
616
621
afterEach ( destroyGraphDiv ) ;
617
622
618
- function assertRange ( actual , expected ) {
623
+ function assertRange ( axName , expected ) {
619
624
var PRECISION = 2 ;
620
- expect ( actual [ 0 ] ) . toBeCloseTo ( expected [ 0 ] , PRECISION ) ;
621
- expect ( actual [ 1 ] ) . toBeCloseTo ( expected [ 1 ] , PRECISION ) ;
625
+
626
+ var ax = gd . _fullLayout [ axName ] ;
627
+ var actual = ax . range ;
628
+
629
+ if ( ax . type === 'date' ) {
630
+ var truncate = function ( v ) { return v . substr ( 0 , 10 ) ; } ;
631
+ expect ( actual . map ( truncate ) ) . toEqual ( expected . map ( truncate ) , axName ) ;
632
+ }
633
+ else {
634
+ expect ( actual ) . toBeCloseToArray ( expected , PRECISION , axName ) ;
635
+ }
622
636
}
623
637
624
638
function assertActive ( buttons , activeButton ) {
@@ -634,9 +648,11 @@ describe('ModeBar', function() {
634
648
beforeEach ( function ( done ) {
635
649
var mockData = [ {
636
650
type : 'scatter' ,
637
- y : [ 2 , 1 , 2 ]
651
+ x : [ '2016-01-01' , '2016-02-01' , '2016-03-01' ] ,
652
+ y : [ 10 , 100 , 1000 ] ,
638
653
} , {
639
654
type : 'bar' ,
655
+ x : [ 'a' , 'b' , 'c' ] ,
640
656
y : [ 2 , 1 , 2 ] ,
641
657
xaxis : 'x2' ,
642
658
yaxis : 'y2'
@@ -646,11 +662,12 @@ describe('ModeBar', function() {
646
662
xaxis : {
647
663
anchor : 'y' ,
648
664
domain : [ 0 , 0.5 ] ,
649
- range : [ 0 , 5 ]
665
+ range : [ '2016-01-01' , '2016-04-01' ]
650
666
} ,
651
667
yaxis : {
652
668
anchor : 'x' ,
653
- range : [ 0 , 3 ]
669
+ type : 'log' ,
670
+ range : [ 1 , 3 ]
654
671
} ,
655
672
xaxis2 : {
656
673
anchor : 'y2' ,
@@ -679,35 +696,35 @@ describe('ModeBar', function() {
679
696
buttonAutoScale = selectButton ( modeBar , 'autoScale2d' ) ,
680
697
buttonResetScale = selectButton ( modeBar , 'resetScale2d' ) ;
681
698
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 ] ) ;
699
+ assertRange ( ' xaxis' , [ '2016-01-01' , '2016-04-01' ] ) ;
700
+ assertRange ( ' yaxis' , [ 1 , 3 ] ) ;
701
+ assertRange ( ' xaxis2' , [ - 1 , 4 ] ) ;
702
+ assertRange ( ' yaxis2' , [ 0 , 4 ] ) ;
686
703
687
704
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 ] ) ;
705
+ assertRange ( ' xaxis' , [ '2016-01-23 17:45' , '2016-03-09 05:15' ] ) ;
706
+ assertRange ( ' yaxis' , [ 1.5 , 2.5 ] ) ;
707
+ assertRange ( ' xaxis2' , [ 0.25 , 2.75 ] ) ;
708
+ assertRange ( ' yaxis2' , [ 1 , 3 ] ) ;
692
709
693
710
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 ] ) ;
711
+ assertRange ( ' xaxis' , [ '2016-01-01' , '2016-04-01' ] ) ;
712
+ assertRange ( ' yaxis' , [ 1 , 3 ] ) ;
713
+ assertRange ( ' xaxis2' , [ - 1 , 4 ] ) ;
714
+ assertRange ( ' yaxis2' , [ 0 , 4 ] ) ;
698
715
699
716
buttonZoomIn . click ( ) ;
700
717
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 ] ) ;
718
+ assertRange ( ' xaxis' , [ '2015-12-27 06:36:39.6661' , '2016-03-05 17:23:20.3339' ] ) ;
719
+ assertRange ( ' yaxis' , [ 0.8591 , 3.1408 ] ) ;
720
+ assertRange ( ' xaxis2' , [ - 0.5 , 2.5 ] ) ;
721
+ assertRange ( ' yaxis2' , [ 0 , 2.105263 ] ) ;
705
722
706
723
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 ] ) ;
724
+ assertRange ( ' xaxis' , [ '2016-01-01' , '2016-04-01' ] ) ;
725
+ assertRange ( ' yaxis' , [ 1 , 3 ] ) ;
726
+ assertRange ( ' xaxis2' , [ - 1 , 4 ] ) ;
727
+ assertRange ( ' yaxis2' , [ 0 , 4 ] ) ;
711
728
} ) ;
712
729
} ) ;
713
730
0 commit comments