Skip to content

Commit 32f98a6

Browse files
committed
update range slider tests
- rm now useless yaxis mocks - add better fixedrange logic test cases
1 parent b9bc96d commit 32f98a6

File tree

1 file changed

+69
-84
lines changed

1 file changed

+69
-84
lines changed

test/jasmine/tests/range_slider_test.js

+69-84
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
var Plotly = require('@lib/index');
2+
var Plots = require('@src/plots/plots');
23
var Lib = require('@src/lib');
34
var 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

Comments
 (0)