1
1
var Plotly = require ( '@lib/index' ) ;
2
2
var Lib = require ( '@src/lib' ) ;
3
3
var setConvert = require ( '@src/plots/cartesian/set_convert' ) ;
4
+ var name2id = require ( '@src/plots/cartesian/axis_ids' ) . name2id ;
4
5
5
6
var RangeSlider = require ( '@src/components/rangeslider' ) ;
6
7
var constants = require ( '@src/components/rangeslider/constants' ) ;
@@ -509,7 +510,11 @@ describe('Rangeslider handleDefaults function', function() {
509
510
510
511
function _supply ( layoutIn , layoutOut , axName ) {
511
512
setConvert ( layoutOut [ axName ] ) ;
513
+ layoutOut [ axName ] . _id = name2id ( axName ) ;
514
+ if ( ! layoutOut . _requestRangeslider ) layoutOut . _requestRangeslider = { } ;
512
515
RangeSlider . handleDefaults ( layoutIn , layoutOut , axName ) ;
516
+ // we don't care about this after it's done its job
517
+ delete layoutOut . _requestRangeslider ;
513
518
}
514
519
515
520
it ( 'should not coerce anything if rangeslider isn\'t set' , function ( ) {
@@ -519,6 +524,7 @@ describe('Rangeslider handleDefaults function', function() {
519
524
520
525
_supply ( layoutIn , layoutOut , 'xaxis' ) ;
521
526
expect ( layoutIn ) . toEqual ( expected ) ;
527
+ expect ( layoutOut . xaxis . rangeslider ) . toBeUndefined ( ) ;
522
528
} ) ;
523
529
524
530
it ( 'should not mutate layoutIn' , function ( ) {
@@ -547,6 +553,27 @@ describe('Rangeslider handleDefaults function', function() {
547
553
expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected ) ;
548
554
} ) ;
549
555
556
+ it ( 'should set defaults if rangeslider is requested' , function ( ) {
557
+ var layoutIn = { xaxis : { } } ,
558
+ layoutOut = { xaxis : { } , _requestRangeslider : { x : true } } ,
559
+ expected = {
560
+ visible : true ,
561
+ autorange : true ,
562
+ thickness : 0.15 ,
563
+ bgcolor : '#fff' ,
564
+ borderwidth : 0 ,
565
+ bordercolor : '#444' ,
566
+ _input : { }
567
+ } ;
568
+
569
+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
570
+ // in fact we DO mutate layoutIn - which we should probably try not to do,
571
+ // but that's a problem for another time.
572
+ // see https://github.com/plotly/plotly.js/issues/1473
573
+ expect ( layoutIn ) . toEqual ( { xaxis : { rangeslider : { } } } ) ;
574
+ expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected ) ;
575
+ } ) ;
576
+
550
577
it ( 'should set defaults if rangeslider.visible is true' , function ( ) {
551
578
var layoutIn = { xaxis : { rangeslider : { visible : true } } } ,
552
579
layoutOut = { xaxis : { rangeslider : { } } } ,
0 commit comments