11var d3 = require ( 'd3' ) ;
2+ var isNumeric = require ( 'fast-isnumeric' ) ;
23
34var createModeBar = require ( '@src/components/modebar/modebar' ) ;
45var manageModeBar = require ( '@src/components/modebar/manage' ) ;
6+ var customMatchers = require ( '../assets/custom_matchers' ) ;
57
68var Plotly = require ( '@lib/index' ) ;
79var 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