@@ -48,7 +48,6 @@ describe('rangeSlider()', () => {
48
48
rangeSlider . __Rewire__ ( 'headerFooterHOC' , headerFooter ) ;
49
49
50
50
container = document . createElement ( 'div' ) ;
51
- widget = rangeSlider ( { container, attributeName : 'aNumAttr' , cssClasses : { root : [ 'root' , 'cx' ] } } ) ;
52
51
53
52
helper = new AlgoliasearchHelper (
54
53
{ search : function ( ) { } } ,
@@ -58,12 +57,90 @@ describe('rangeSlider()', () => {
58
57
sinon . spy ( helper , 'addNumericRefinement' ) ;
59
58
sinon . spy ( helper , 'clearRefinements' ) ;
60
59
sinon . spy ( helper , 'search' ) ;
61
- widget . init ( { helper} ) ;
60
+ } ) ;
61
+
62
+ context ( 'min option' , ( ) => {
63
+ it ( 'refines when no previous configuration' , ( ) => {
64
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , min : 100 } ) ;
65
+ expect ( widget . getConfiguration ( ) ) . toEqual ( {
66
+ disjunctiveFacets : [ 'aNumAttr' ] ,
67
+ numericRefinements : { aNumAttr : { '>=' : [ 100 ] } }
68
+ } ) ;
69
+ } ) ;
70
+
71
+ it ( 'does not refine when previous configuration' , ( ) => {
72
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , min : 100 } ) ;
73
+ expect ( widget . getConfiguration ( { numericRefinements : { aNumAttr : { } } } ) ) . toEqual ( {
74
+ disjunctiveFacets : [ 'aNumAttr' ]
75
+ } ) ;
76
+ } ) ;
77
+
78
+ it ( 'works along with max option' , ( ) => {
79
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , min : 100 , max : 200 } ) ;
80
+ expect ( widget . getConfiguration ( ) ) . toEqual ( {
81
+ disjunctiveFacets : [ 'aNumAttr' ] ,
82
+ numericRefinements : { aNumAttr : { '>=' : [ 100 ] , '<=' : [ 200 ] } }
83
+ } ) ;
84
+ } ) ;
85
+
86
+ it ( 'sets the right ranges' , ( ) => {
87
+ results = { } ;
88
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , min : 100 , max : 200 } ) ;
89
+ helper . setState ( widget . getConfiguration ( ) ) ;
90
+ widget . init ( { helper} ) ;
91
+ widget . render ( { results, helper} ) ;
92
+ let props = {
93
+ cssClasses : {
94
+ root : 'ais-range-slider' ,
95
+ header : 'ais-range-slider--header' ,
96
+ body : 'ais-range-slider--body' ,
97
+ footer : 'ais-range-slider--footer'
98
+ } ,
99
+ collapsible : false ,
100
+ onChange : ( ) => { } ,
101
+ pips : true ,
102
+ range : { max : 200 , min : 100 } ,
103
+ shouldAutoHideContainer : false ,
104
+ start : [ 100 , 200 ] ,
105
+ step : 1 ,
106
+ templateProps : {
107
+ templates : { footer : '' , header : '' } ,
108
+ templatesConfig : undefined ,
109
+ transformData : undefined ,
110
+ useCustomCompileOptions : { footer : false , header : false }
111
+ } ,
112
+ tooltips : true
113
+ } ;
114
+
115
+ expect ( ReactDOM . render . calledOnce ) . toBe ( true , 'ReactDOM.render called once' ) ;
116
+ expect ( autoHideContainer . calledOnce ) . toBe ( true , 'autoHideContainer called once' ) ;
117
+ expect ( headerFooter . calledOnce ) . toBe ( true , 'headerFooter called once' ) ;
118
+ expect ( ReactDOM . render . firstCall . args [ 0 ] ) . toEqualJSX ( < Slider { ...props } /> ) ;
119
+ } ) ;
120
+ } ) ;
121
+
122
+ context ( 'max option' , ( ) => {
123
+ it ( 'refines when no previous configuration' , ( ) => {
124
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , max : 100 } ) ;
125
+ expect ( widget . getConfiguration ( ) ) . toEqual ( {
126
+ disjunctiveFacets : [ 'aNumAttr' ] ,
127
+ numericRefinements : { aNumAttr : { '<=' : [ 100 ] } }
128
+ } ) ;
129
+ } ) ;
130
+
131
+ it ( 'does not refine when previous configuration' , ( ) => {
132
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , max : 100 } ) ;
133
+ expect ( widget . getConfiguration ( { numericRefinements : { aNumAttr : { } } } ) ) . toEqual ( {
134
+ disjunctiveFacets : [ 'aNumAttr' ]
135
+ } ) ;
136
+ } ) ;
62
137
} ) ;
63
138
64
139
context ( 'without result' , ( ) => {
65
140
beforeEach ( ( ) => {
66
141
results = { } ;
142
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , cssClasses : { root : [ 'root' , 'cx' ] } } ) ;
143
+ widget . init ( { helper} ) ;
67
144
} ) ;
68
145
69
146
it ( 'calls ReactDOM.render(<Slider props />, container)' , ( ) => {
@@ -101,6 +178,8 @@ describe('rangeSlider()', () => {
101
178
102
179
context ( 'when rangestats min === stats max' , ( ) => {
103
180
beforeEach ( ( ) => {
181
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , cssClasses : { root : [ 'root' , 'cx' ] } } ) ;
182
+ widget . init ( { helper} ) ;
104
183
results = {
105
184
disjunctiveFacets : [ {
106
185
name : 'aNumAttr' ,
@@ -150,6 +229,8 @@ describe('rangeSlider()', () => {
150
229
151
230
context ( 'with results' , ( ) => {
152
231
beforeEach ( ( ) => {
232
+ widget = rangeSlider ( { container, attributeName : 'aNumAttr' , cssClasses : { root : [ 'root' , 'cx' ] } } ) ;
233
+ widget . init ( { helper} ) ;
153
234
results = {
154
235
disjunctiveFacets : [ {
155
236
name : 'aNumAttr' ,
0 commit comments