@@ -183,6 +183,53 @@ describe('Range', () => {
183
183
expect ( wrapper . instance ( ) . getSlider ( ) . state . bounds [ 1 ] ) . toBe ( 40 ) ;
184
184
} ) ;
185
185
186
+ it ( 'should render correctly when allowCross' , ( ) => {
187
+ class CustomizedRange extends React . Component { // eslint-disable-line
188
+ constructor ( props ) {
189
+ super ( props ) ;
190
+ this . state = {
191
+ value : [ 20 , 40 ] ,
192
+ } ;
193
+ }
194
+ onChange = ( value ) => {
195
+ this . setState ( {
196
+ value,
197
+ } ) ;
198
+ }
199
+ getSlider ( ) {
200
+ return this . refs . slider ;
201
+ }
202
+ render ( ) {
203
+ return < Range ref = "slider" onChange = { this . onChange } value = { this . state . value } /> ;
204
+ }
205
+ }
206
+ const map = { } ;
207
+ document . addEventListener = jest . fn ( ) . mockImplementation ( ( event , cb ) => {
208
+ map [ event ] = cb ;
209
+ } ) ;
210
+
211
+ const mockRect = ( wrapper ) => {
212
+ wrapper . instance ( ) . getSlider ( ) . sliderRef . getBoundingClientRect = ( ) => ( {
213
+ left : 0 ,
214
+ width : 100 ,
215
+ } ) ;
216
+ } ;
217
+
218
+ const container = document . createElement ( 'div' ) ;
219
+ document . body . appendChild ( container ) ;
220
+
221
+ const wrapper = mount ( < CustomizedRange /> , { attachTo : container } ) ;
222
+ mockRect ( wrapper ) ;
223
+
224
+ expect ( wrapper . instance ( ) . getSlider ( ) . state . bounds ) . toEqual ( [ 20 , 40 ] ) ;
225
+
226
+ wrapper . find ( '.rc-slider' ) . simulate ( 'mouseDown' , { button : 0 , pageX : 0 , pageY : 0 } ) ;
227
+ map . mousemove ( { type : 'mousemove' , pageX : 60 , pageY : 0 } ) ;
228
+
229
+ expect ( wrapper . instance ( ) . getSlider ( ) . state . bounds ) . toEqual ( [ 40 , 60 ] ) ;
230
+ expect ( wrapper . find ( '.rc-slider-handle-2' ) . at ( 1 ) . getDOMNode ( ) . className ) . toContain ( 'rc-slider-handle-dragging' ) ;
231
+ } ) ;
232
+
186
233
it ( 'should keep pushable with pushable s defalutValue when not allowCross and setState' , ( ) => {
187
234
class CustomizedRange extends React . Component { // eslint-disable-line
188
235
state = {
0 commit comments