@@ -336,13 +336,17 @@ describe('the range slider', function() {
336336
337337 describe ( 'handleDefaults function' , function ( ) {
338338
339+ function _supply ( layoutIn , layoutOut , axName ) {
340+ setConvert ( layoutOut [ axName ] ) ;
341+ RangeSlider . handleDefaults ( layoutIn , layoutOut , axName ) ;
342+ }
343+
339344 it ( 'should not coerce anything if rangeslider isn\'t set' , function ( ) {
340345 var layoutIn = { xaxis : { } } ,
341346 layoutOut = { xaxis : { } } ,
342347 expected = { xaxis : { } } ;
343348
344- RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
345-
349+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
346350 expect ( layoutIn ) . toEqual ( expected ) ;
347351 } ) ;
348352
@@ -351,53 +355,45 @@ describe('the range slider', function() {
351355 layoutOut = { xaxis : { rangeslider : { } } } ,
352356 expected = { xaxis : { rangeslider : { visible : true } } } ;
353357
354- RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
355-
358+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
356359 expect ( layoutIn ) . toEqual ( expected ) ;
357360 } ) ;
358361
359362 it ( 'should set defaults if rangeslider is set to anything truthy' , function ( ) {
360363 var layoutIn = { xaxis : { rangeslider : { } } } ,
361364 layoutOut = { xaxis : { } } ,
362365 expected = {
363- xaxis : {
364- rangeslider : {
365- visible : true ,
366- thickness : 0.15 ,
367- bgcolor : '#fff' ,
368- borderwidth : 0 ,
369- bordercolor : '#444' ,
370- _input : layoutIn . xaxis . rangeslider
371- } ,
372- _needsExpand : true
373- }
366+ visible : true ,
367+ autorange : true ,
368+ range : [ - 1 , 6 ] ,
369+ thickness : 0.15 ,
370+ bgcolor : '#fff' ,
371+ borderwidth : 0 ,
372+ bordercolor : '#444' ,
373+ _input : layoutIn . xaxis . rangeslider
374374 } ;
375375
376- RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
377-
378- expect ( layoutOut ) . toEqual ( expected ) ;
376+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
377+ expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected ) ;
379378 } ) ;
380379
381380 it ( 'should set defaults if rangeslider.visible is true' , function ( ) {
382381 var layoutIn = { xaxis : { rangeslider : { visible : true } } } ,
383382 layoutOut = { xaxis : { rangeslider : { } } } ,
384383 expected = {
385- xaxis : {
386- rangeslider : {
387- visible : true ,
388- thickness : 0.15 ,
389- bgcolor : '#fff' ,
390- borderwidth : 0 ,
391- bordercolor : '#444' ,
392- _input : layoutIn . xaxis . rangeslider
393- } ,
394- _needsExpand : true
395- }
384+ visible : true ,
385+ autorange : true ,
386+ range : [ - 1 , 6 ] ,
387+ thickness : 0.15 ,
388+ bgcolor : '#fff' ,
389+ borderwidth : 0 ,
390+ bordercolor : '#444' ,
391+ _input : layoutIn . xaxis . rangeslider
396392 } ;
397393
398- RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
394+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
395+ expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected ) ;
399396
400- expect ( layoutOut ) . toEqual ( expected ) ;
401397 } ) ;
402398
403399 it ( 'should set defaults if properties are invalid' , function ( ) {
@@ -410,72 +406,57 @@ describe('the range slider', function() {
410406 } } } ,
411407 layoutOut = { xaxis : { } } ,
412408 expected = {
413- xaxis : {
414- rangeslider : {
415- visible : true ,
416- thickness : 0.15 ,
417- bgcolor : '#fff' ,
418- borderwidth : 0 ,
419- bordercolor : '#444' ,
420- _input : layoutIn . xaxis . rangeslider
421- } ,
422- _needsExpand : true
423- }
409+ visible : true ,
410+ autorange : true ,
411+ range : [ - 1 , 6 ] ,
412+ thickness : 0.15 ,
413+ bgcolor : '#fff' ,
414+ borderwidth : 0 ,
415+ bordercolor : '#444' ,
416+ _input : layoutIn . xaxis . rangeslider
424417 } ;
425418
426- RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
427-
428- expect ( layoutOut ) . toEqual ( expected ) ;
419+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
420+ expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected ) ;
429421 } ) ;
430422
431423 it ( 'should expand the rangeslider range to axis range' , function ( ) {
432424 var layoutIn = { xaxis : { rangeslider : { range : [ 5 , 6 ] } } } ,
433425 layoutOut = { xaxis : { range : [ 1 , 10 ] , type : 'linear' } } ,
434426 expected = {
435- xaxis : {
436- rangeslider : {
437- visible : true ,
438- thickness : 0.15 ,
439- bgcolor : '#fff' ,
440- borderwidth : 0 ,
441- bordercolor : '#444' ,
442- range : [ 1 , 10 ] ,
443- _input : layoutIn . xaxis . rangeslider
444- } ,
445- range : [ 1 , 10 ]
446- }
427+ visible : true ,
428+ autorange : false ,
429+ range : [ 1 , 10 ] ,
430+ thickness : 0.15 ,
431+ bgcolor : '#fff' ,
432+ borderwidth : 0 ,
433+ bordercolor : '#444' ,
434+ _input : layoutIn . xaxis . rangeslider
447435 } ;
448436
449- setConvert ( layoutOut . xaxis ) ;
450-
451- RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
437+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
452438
453439 // don't compare the whole layout, because we had to run setConvert which
454440 // attaches all sorts of other stuff to xaxis
455- expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected . xaxis . rangeslider ) ;
441+ expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected ) ;
456442 } ) ;
457443
458- it ( 'should set _needsExpand when an axis range is set ' , function ( ) {
459- var layoutIn = { xaxis : { rangeslider : true } } ,
460- layoutOut = { xaxis : { range : [ 2 , 40 ] } } ,
444+ it ( 'should set autorange to true when range input is invalid ' , function ( ) {
445+ var layoutIn = { xaxis : { rangeslider : { range : 'not-gonna-work' } } } ,
446+ layoutOut = { xaxis : { } } ,
461447 expected = {
462- xaxis : {
463- rangeslider : {
464- visible : true ,
465- thickness : 0.15 ,
466- bgcolor : '#fff' ,
467- borderwidth : 0 ,
468- bordercolor : '#444' ,
469- _input : { }
470- } ,
471- range : [ 2 , 40 ] ,
472- _needsExpand : true
473- } ,
448+ visible : true ,
449+ autorange : true ,
450+ range : [ - 1 , 6 ] ,
451+ thickness : 0.15 ,
452+ bgcolor : '#fff' ,
453+ borderwidth : 0 ,
454+ bordercolor : '#444' ,
455+ _input : layoutIn . xaxis . rangeslider
474456 } ;
475457
476- RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
477-
478- expect ( layoutOut ) . toEqual ( expected ) ;
458+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
459+ expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected ) ;
479460 } ) ;
480461
481462 it ( 'should default \'bgcolor\' to layout \'plot_bgcolor\'' , function ( ) {
@@ -488,8 +469,7 @@ describe('the range slider', function() {
488469 plot_bgcolor : 'blue'
489470 } ;
490471
491- RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
492-
472+ _supply ( layoutIn , layoutOut , 'xaxis' ) ;
493473 expect ( layoutOut . xaxis . rangeslider . bgcolor ) . toEqual ( 'blue' ) ;
494474 } ) ;
495475 } ) ;
0 commit comments