@@ -2,6 +2,7 @@ var d3 = require('d3');
22
33var createModeBar = require ( '@src/components/modebar/modebar' ) ;
44var manageModeBar = require ( '@src/components/modebar/manage' ) ;
5+ var customMatchers = require ( '../assets/custom_matchers' ) ;
56
67var Plotly = require ( '@lib/index' ) ;
78var Plots = require ( '@src/plots/plots' ) ;
@@ -613,12 +614,25 @@ describe('ModeBar', function() {
613614 describe ( 'modebar on clicks' , function ( ) {
614615 var gd , modeBar ;
615616
617+ beforeAll ( function ( ) {
618+ jasmine . addMatchers ( customMatchers ) ;
619+ } ) ;
620+
616621 afterEach ( destroyGraphDiv ) ;
617622
618- function assertRange ( actual , expected ) {
623+ function assertRange ( axName , expected ) {
619624 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+ }
622636 }
623637
624638 function assertActive ( buttons , activeButton ) {
@@ -634,9 +648,11 @@ describe('ModeBar', function() {
634648 beforeEach ( function ( done ) {
635649 var mockData = [ {
636650 type : 'scatter' ,
637- y : [ 2 , 1 , 2 ]
651+ x : [ '2016-01-01' , '2016-02-01' , '2016-03-01' ] ,
652+ y : [ 10 , 100 , 1000 ] ,
638653 } , {
639654 type : 'bar' ,
655+ x : [ 'a' , 'b' , 'c' ] ,
640656 y : [ 2 , 1 , 2 ] ,
641657 xaxis : 'x2' ,
642658 yaxis : 'y2'
@@ -646,11 +662,12 @@ describe('ModeBar', function() {
646662 xaxis : {
647663 anchor : 'y' ,
648664 domain : [ 0 , 0.5 ] ,
649- range : [ 0 , 5 ]
665+ range : [ '2016-01-01' , '2016-04-01' ]
650666 } ,
651667 yaxis : {
652668 anchor : 'x' ,
653- range : [ 0 , 3 ]
669+ type : 'log' ,
670+ range : [ 1 , 3 ]
654671 } ,
655672 xaxis2 : {
656673 anchor : 'y2' ,
@@ -679,35 +696,35 @@ describe('ModeBar', function() {
679696 buttonAutoScale = selectButton ( modeBar , 'autoScale2d' ) ,
680697 buttonResetScale = selectButton ( modeBar , 'resetScale2d' ) ;
681698
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 ] ) ;
686703
687704 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 ] ) ;
692709
693710 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 ] ) ;
698715
699716 buttonZoomIn . click ( ) ;
700717 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 ] ) ;
705722
706723 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 ] ) ;
711728 } ) ;
712729 } ) ;
713730
0 commit comments