1
1
var Plotly = require ( '@lib/index' ) ;
2
+ var Plots = require ( '@src/plots/plots' ) ;
2
3
var Lib = require ( '@src/lib' ) ;
3
4
var setConvert = require ( '@src/plots/cartesian/set_convert' ) ;
4
5
@@ -336,34 +337,28 @@ describe('the range slider', function() {
336
337
describe ( 'handleDefaults function' , function ( ) {
337
338
338
339
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 : { } } ;
344
343
345
- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
344
+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
346
345
347
346
expect ( layoutIn ) . toEqual ( expected ) ;
348
347
} ) ;
349
348
350
349
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 } } } ;
356
353
357
- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
354
+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
358
355
359
356
expect ( layoutIn ) . toEqual ( expected ) ;
360
357
} ) ;
361
358
362
359
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 : { } } ,
367
362
expected = {
368
363
xaxis : {
369
364
rangeslider : {
@@ -375,22 +370,17 @@ describe('the range slider', function() {
375
370
_input : layoutIn . xaxis . rangeslider
376
371
} ,
377
372
_needsExpand : true
378
- } ,
379
- yaxis : {
380
- fixedrange : true
381
- } ,
373
+ }
382
374
} ;
383
375
384
- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
376
+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
385
377
386
378
expect ( layoutOut ) . toEqual ( expected ) ;
387
379
} ) ;
388
380
389
381
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 : { } } } ,
394
384
expected = {
395
385
xaxis : {
396
386
rangeslider : {
@@ -402,13 +392,10 @@ describe('the range slider', function() {
402
392
_input : layoutIn . xaxis . rangeslider
403
393
} ,
404
394
_needsExpand : true
405
- } ,
406
- yaxis : {
407
- fixedrange : true
408
395
}
409
396
} ;
410
397
411
- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
398
+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
412
399
413
400
expect ( layoutOut ) . toEqual ( expected ) ;
414
401
} ) ;
@@ -420,10 +407,8 @@ describe('the range slider', function() {
420
407
bgcolor : 42 ,
421
408
bordercolor : 42 ,
422
409
borderwidth : 'superfat'
423
- } } , yaxis : { } } ,
424
- layoutOut = { xaxis : { } , yaxis : { } } ,
425
- axName = 'xaxis' ,
426
- counterAxes = [ 'yaxis' ] ,
410
+ } } } ,
411
+ layoutOut = { xaxis : { } } ,
427
412
expected = {
428
413
xaxis : {
429
414
rangeslider : {
@@ -435,48 +420,17 @@ describe('the range slider', function() {
435
420
_input : layoutIn . xaxis . rangeslider
436
421
} ,
437
422
_needsExpand : true
438
- } ,
439
- yaxis : {
440
- fixedrange : true
441
423
}
442
424
} ;
443
425
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' ) ;
471
427
472
428
expect ( layoutOut ) . toEqual ( expected ) ;
473
429
} ) ;
474
430
475
431
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' } } ,
480
434
expected = {
481
435
xaxis : {
482
436
rangeslider : {
@@ -489,24 +443,21 @@ describe('the range slider', function() {
489
443
_input : layoutIn . xaxis . rangeslider
490
444
} ,
491
445
range : [ 1 , 10 ]
492
- } ,
493
- yaxis : { fixedrange : true }
446
+ }
494
447
} ;
448
+
495
449
setConvert ( layoutOut . xaxis ) ;
496
450
497
- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
451
+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
498
452
499
453
// don't compare the whole layout, because we had to run setConvert which
500
454
// attaches all sorts of other stuff to xaxis
501
455
expect ( layoutOut . xaxis . rangeslider ) . toEqual ( expected . xaxis . rangeslider ) ;
502
- expect ( layoutOut . yaxis ) . toEqual ( expected . yaxis ) ;
503
456
} ) ;
504
457
505
458
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 ] } } ,
510
461
expected = {
511
462
xaxis : {
512
463
rangeslider : {
@@ -520,35 +471,69 @@ describe('the range slider', function() {
520
471
range : [ 2 , 40 ] ,
521
472
_needsExpand : true
522
473
} ,
523
- yaxis : { fixedrange : true }
524
474
} ;
525
475
526
- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
476
+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
527
477
528
478
expect ( layoutOut ) . toEqual ( expected ) ;
529
479
} ) ;
530
480
531
481
it ( 'should default \'bgcolor\' to layout \'plot_bgcolor\'' , function ( ) {
532
482
var layoutIn = {
533
- xaxis : { rangeslider : true } ,
534
- yaxis : { } ,
483
+ xaxis : { rangeslider : true }
535
484
} ;
536
485
537
486
var layoutOut = {
538
487
xaxis : { range : [ 2 , 40 ] } ,
539
- yaxis : { } ,
540
488
plot_bgcolor : 'blue'
541
489
} ;
542
490
543
- var axName = 'xaxis' ,
544
- counterAxes = [ 'yaxis' ] ;
545
-
546
- RangeSlider . handleDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
491
+ RangeSlider . handleDefaults ( layoutIn , layoutOut , 'xaxis' ) ;
547
492
548
493
expect ( layoutOut . xaxis . rangeslider . bgcolor ) . toEqual ( 'blue' ) ;
549
494
} ) ;
550
495
} ) ;
551
496
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
+
552
537
describe ( 'in general' , function ( ) {
553
538
554
539
beforeEach ( function ( ) {
0 commit comments