diff --git a/functional-tests/app/app.js b/functional-tests/app/app.js index f1f8a6d938..47d8b57780 100644 --- a/functional-tests/app/app.js +++ b/functional-tests/app/app.js @@ -82,6 +82,7 @@ search.addWidget( search.addWidget( instantsearch.widgets.currentRefinedValues({ + autoHideContainer: false, container: '#current-refined-values', cssClasses: { header: 'facet-title', diff --git a/src/components/Slider/Slider.js b/src/components/Slider/Slider.js index 4f7f0c1f16..87fe9b8dc9 100644 --- a/src/components/Slider/Slider.js +++ b/src/components/Slider/Slider.js @@ -22,6 +22,12 @@ class Slider extends React.Component { } render() { + if (this.props.range.min === this.props.range.max) { + // There's no need to try to render the Slider, it will not be usable + // and will throw + return null; + } + // setup pips let pips; if (this.props.pips === false) { diff --git a/src/components/Slider/__tests__/Slider-test.js b/src/components/Slider/__tests__/Slider-test.js index 9a2f64ac2c..945a827ed8 100644 --- a/src/components/Slider/__tests__/Slider-test.js +++ b/src/components/Slider/__tests__/Slider-test.js @@ -15,6 +15,7 @@ describe('Slider', () => { let renderer; let Slider; let Nouislider; + let props; beforeEach(() => { let {createRenderer} = TestUtils; @@ -23,6 +24,9 @@ describe('Slider', () => { // need to be required AFTER jsdom has initialized global.window/navigator Slider = require('../Slider.js'); Nouislider = require('react-nouislider'); + props = { + range: {min: 0, max: 5000} + }; }); @@ -33,17 +37,22 @@ describe('Slider', () => { animate={false} behaviour="snap" connect - cssClasses={{}} cssPrefix="ais-range-slider--" onChange={() => {}} pips={{density: 3, format: {to: function noRefCheck() {}}, mode: 'positions', stepped: true, values: [0, 50, 100]}} - templateProps={{}} + range={props.range} /> ); }); + it('should not render anything when ranges are equal', () => { + props.range.min = props.range.max = 8; + let out = render(); + expect(out).toEqual(null); + }); + function render() { - renderer.render(); + renderer.render(); return renderer.getRenderOutput(); } });