11var Plotly = require ( '@lib/index' ) ;
2+ var Plots = require ( '@src/plots/plots' ) ;
23var Lib = require ( '@src/lib' ) ;
34var setConvert = require ( '@src/plots/cartesian/set_convert' ) ;
45
@@ -336,34 +337,28 @@ describe('the range slider', function() {
336337 describe ( 'handleDefaults function' , function ( ) {
337338
338339 it ( 'should not coerce anything if rangeslider isn\'t set' , function ( ) {
339- var layoutIn = { xaxis : { } , yaxis : { } } ,
340- layoutOut = { xaxis : { } , yaxis : { } } ,
341- axName = 'xaxis' ,
342- counterAxes = [ 'yaxis' ] ,
343- expected = { xaxis : { } , yaxis : { } } ;
340+ var layoutIn = { xaxis : { } } ,
341+ layoutOut = { xaxis : { } } ,
342+ expected = { xaxis : { } } ;
344343
345- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
344+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
346345
347346 expect ( layoutIn ) . toEqual ( expected ) ;
348347 } ) ;
349348
350349 it ( 'should not mutate layoutIn' , function ( ) {
351- var layoutIn = { xaxis : { rangeslider : { visible : true } } , yaxis : { } } ,
352- layoutOut = { xaxis : { rangeslider : { } } , yaxis : { } } ,
353- axName = 'xaxis' ,
354- counterAxes = [ 'yaxis' ] ,
355- expected = { xaxis : { rangeslider : { visible : true } } , yaxis : { } } ;
350+ var layoutIn = { xaxis : { rangeslider : { visible : true } } } ,
351+ layoutOut = { xaxis : { rangeslider : { } } } ,
352+ expected = { xaxis : { rangeslider : { visible : true } } } ;
356353
357- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
354+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
358355
359356 expect ( layoutIn ) . toEqual ( expected ) ;
360357 } ) ;
361358
362359 it ( 'should set defaults if rangeslider is set to anything truthy' , function ( ) {
363- var layoutIn = { xaxis : { rangeslider : { } } , yaxis : { } } ,
364- layoutOut = { xaxis : { } , yaxis : { } } ,
365- axName = 'xaxis' ,
366- counterAxes = [ 'yaxis' ] ,
360+ var layoutIn = { xaxis : { rangeslider : { } } } ,
361+ layoutOut = { xaxis : { } } ,
367362 expected = {
368363 xaxis : {
369364 rangeslider : {
@@ -375,22 +370,17 @@ describe('the range slider', function() {
375370 _input : layoutIn . xaxis . rangeslider
376371 } ,
377372 _needsExpand : true
378- } ,
379- yaxis : {
380- fixedrange : true
381- } ,
373+ }
382374 } ;
383375
384- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
376+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
385377
386378 expect ( layoutOut ) . toEqual ( expected ) ;
387379 } ) ;
388380
389381 it ( 'should set defaults if rangeslider.visible is true' , function ( ) {
390- var layoutIn = { xaxis : { rangeslider : { visible : true } } , yaxis : { } } ,
391- layoutOut = { xaxis : { rangeslider : { } } , yaxis : { } } ,
392- axName = 'xaxis' ,
393- counterAxes = [ 'yaxis' ] ,
382+ var layoutIn = { xaxis : { rangeslider : { visible : true } } } ,
383+ layoutOut = { xaxis : { rangeslider : { } } } ,
394384 expected = {
395385 xaxis : {
396386 rangeslider : {
@@ -402,13 +392,10 @@ describe('the range slider', function() {
402392 _input : layoutIn . xaxis . rangeslider
403393 } ,
404394 _needsExpand : true
405- } ,
406- yaxis : {
407- fixedrange : true
408395 }
409396 } ;
410397
411- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
398+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
412399
413400 expect ( layoutOut ) . toEqual ( expected ) ;
414401 } ) ;
@@ -420,10 +407,8 @@ describe('the range slider', function() {
420407 bgcolor : 42 ,
421408 bordercolor : 42 ,
422409 borderwidth : 'superfat'
423- } } , yaxis : { } } ,
424- layoutOut = { xaxis : { } , yaxis : { } } ,
425- axName = 'xaxis' ,
426- counterAxes = [ 'yaxis' ] ,
410+ } } } ,
411+ layoutOut = { xaxis : { } } ,
427412 expected = {
428413 xaxis : {
429414 rangeslider : {
@@ -435,48 +420,17 @@ describe('the range slider', function() {
435420 _input : layoutIn . xaxis . rangeslider
436421 } ,
437422 _needsExpand : true
438- } ,
439- yaxis : {
440- fixedrange : true
441423 }
442424 } ;
443425
444- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
445-
446- expect ( layoutOut ) . toEqual ( expected ) ;
447- } ) ;
448-
449- it ( 'should set all counterAxes to fixedrange' , function ( ) {
450- var layoutIn = { xaxis : { rangeslider : true } , yaxis : { } , yaxis2 : { } } ,
451- layoutOut = { xaxis : { } , yaxis : { } , yaxis2 : { } } ,
452- axName = 'xaxis' ,
453- counterAxes = [ 'yaxis' , 'yaxis2' ] ,
454- expected = {
455- xaxis : {
456- rangeslider : {
457- visible : true ,
458- thickness : 0.15 ,
459- bgcolor : '#fff' ,
460- borderwidth : 0 ,
461- bordercolor : '#444' ,
462- _input : { }
463- } ,
464- _needsExpand : true
465- } ,
466- yaxis : { fixedrange : true } ,
467- yaxis2 : { fixedrange : true }
468- } ;
469-
470- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
426+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
471427
472428 expect ( layoutOut ) . toEqual ( expected ) ;
473429 } ) ;
474430
475431 it ( 'should expand the rangeslider range to axis range' , function ( ) {
476- var layoutIn = { xaxis : { rangeslider : { range : [ 5 , 6 ] } } , yaxis : { } } ,
477- layoutOut = { xaxis : { range : [ 1 , 10 ] , type : 'linear' } , yaxis : { } } ,
478- axName = 'xaxis' ,
479- counterAxes = [ 'yaxis' ] ,
432+ var layoutIn = { xaxis : { rangeslider : { range : [ 5 , 6 ] } } } ,
433+ layoutOut = { xaxis : { range : [ 1 , 10 ] , type : 'linear' } } ,
480434 expected = {
481435 xaxis : {
482436 rangeslider : {
@@ -489,24 +443,21 @@ describe('the range slider', function() {
489443 _input : layoutIn . xaxis . rangeslider
490444 } ,
491445 range : [ 1 , 10 ]
492- } ,
493- yaxis : { fixedrange : true }
446+ }
494447 } ;
448+
495449 setConvert ( layoutOut . xaxis ) ;
496450
497- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
451+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
498452
499453 // don't compare the whole layout, because we had to run setConvert which
500454 // attaches all sorts of other stuff to xaxis
501455 expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected . xaxis . rangeslider ) ;
502- expect ( layoutOut . yaxis ) . toEqual ( expected . yaxis ) ;
503456 } ) ;
504457
505458 it ( 'should set _needsExpand when an axis range is set' , function ( ) {
506- var layoutIn = { xaxis : { rangeslider : true } , yaxis : { } } ,
507- layoutOut = { xaxis : { range : [ 2 , 40 ] } , yaxis : { } } ,
508- axName = 'xaxis' ,
509- counterAxes = [ 'yaxis' ] ,
459+ var layoutIn = { xaxis : { rangeslider : true } } ,
460+ layoutOut = { xaxis : { range : [ 2 , 40 ] } } ,
510461 expected = {
511462 xaxis : {
512463 rangeslider : {
@@ -520,35 +471,69 @@ describe('the range slider', function() {
520471 range : [ 2 , 40 ] ,
521472 _needsExpand : true
522473 } ,
523- yaxis : { fixedrange : true }
524474 } ;
525475
526- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
476+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
527477
528478 expect ( layoutOut ) . toEqual ( expected ) ;
529479 } ) ;
530480
531481 it ( 'should default \'bgcolor\' to layout \'plot_bgcolor\'' , function ( ) {
532482 var layoutIn = {
533- xaxis : { rangeslider : true } ,
534- yaxis : { } ,
483+ xaxis : { rangeslider : true }
535484 } ;
536485
537486 var layoutOut = {
538487 xaxis : { range : [ 2 , 40 ] } ,
539- yaxis : { } ,
540488 plot_bgcolor : 'blue'
541489 } ;
542490
543- var axName = 'xaxis' ,
544- counterAxes = [ 'yaxis' ] ;
545-
546- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
491+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
547492
548493 expect ( layoutOut . xaxis . rangeslider . bgcolor ) . toEqual ( 'blue' ) ;
549494 } ) ;
550495 } ) ;
551496
497+ describe ( 'anchored axes fixedrange' , function ( ) {
498+
499+ it ( 'should default to *true* when range slider is visible' , function ( ) {
500+ var mock = {
501+ layout : {
502+ xaxis : { rangeslider : { } } ,
503+ yaxis : { anchor : 'x' } ,
504+ yaxis2 : { anchor : 'x' } ,
505+ yaxis3 : { anchor : 'free' }
506+ }
507+ } ;
508+
509+ Plots . supplyDefaults ( mock ) ;
510+
511+ expect ( mock . _fullLayout . xaxis . rangeslider . visible ) . toBe ( true ) ;
512+ expect ( mock . _fullLayout . yaxis . fixedrange ) . toBe ( true ) ;
513+ expect ( mock . _fullLayout . yaxis2 . fixedrange ) . toBe ( true ) ;
514+ expect ( mock . _fullLayout . yaxis3 . fixedrange ) . toBe ( false ) ;
515+ } ) ;
516+
517+ it ( 'should honor user settings' , function ( ) {
518+ var mock = {
519+ layout : {
520+ xaxis : { rangeslider : { } } ,
521+ yaxis : { anchor : 'x' , fixedrange : false } ,
522+ yaxis2 : { anchor : 'x' , fixedrange : false } ,
523+ yaxis3 : { anchor : 'free' }
524+ }
525+ } ;
526+
527+ Plots . supplyDefaults ( mock ) ;
528+
529+ expect ( mock . _fullLayout . xaxis . rangeslider . visible ) . toBe ( true ) ;
530+ expect ( mock . _fullLayout . yaxis . fixedrange ) . toBe ( false ) ;
531+ expect ( mock . _fullLayout . yaxis2 . fixedrange ) . toBe ( false ) ;
532+ expect ( mock . _fullLayout . yaxis3 . fixedrange ) . toBe ( false ) ;
533+ } ) ;
534+
535+ } ) ;
536+
552537 describe ( 'in general' , function ( ) {
553538
554539 beforeEach ( function ( ) {
0 commit comments