@@ -322,3 +322,93 @@ describe('渲染正确的DatepicketItem子组件', () => {
322
322
expect ( datePickerItems . at ( 2 ) . props ( ) . format ) . to . equals ( 'ss' ) ;
323
323
} ) ;
324
324
} ) ;
325
+
326
+ describe ( '测试dateSteps属性' , ( ) => {
327
+ let props ;
328
+ let mountedDatepicker ;
329
+ let yearPicker , monthPicker , dayPicker ;
330
+
331
+ const datePicker = ( ) => {
332
+ if ( ! mountedDatepicker ) {
333
+ mountedDatepicker = mount (
334
+ < DatePicker { ...props } />
335
+ ) ;
336
+
337
+ yearPicker = mountedDatepicker . find ( DatePickerItem ) . first ( ) ;
338
+ monthPicker = mountedDatepicker . find ( DatePickerItem ) . at ( 1 ) ;
339
+ dayPicker = mountedDatepicker . find ( DatePickerItem ) . at ( 2 ) ;
340
+ }
341
+
342
+ return mountedDatepicker ;
343
+ }
344
+
345
+ beforeEach ( ( ) => {
346
+ props = {
347
+ value : new Date ( 2016 , 8 , 16 , 8 , 22 , 57 ) ,
348
+ min : new Date ( 2015 , 10 , 1 ) ,
349
+ max : new Date ( 2020 , 10 , 1 ) ,
350
+ isOpen : true ,
351
+ } ;
352
+ mountedDatepicker = undefined ;
353
+ yearPicker = null ;
354
+ monthPicker = null ;
355
+ dayPicker = null ;
356
+ } ) ;
357
+
358
+
359
+ it ( '当datesteps等于[5, 5, 5], dateFormart等于[hh, mm, ss], 当前时间为8:20:57,向上滑动秒,分钟应该为23' , ( ) => {
360
+ props . dateFormat = [ 'hh' , 'mm' , 'ss' ] ;
361
+ props . dateSteps = [ 1 , 1 , 5 ] ;
362
+
363
+ const datePickerItems = datePicker ( ) . find ( DatePickerItem ) ;
364
+ const second = dayPicker . find ( '.datepicker-viewport' ) . instance ( ) ;
365
+
366
+ const touchstartEvent = {
367
+ targetTouches : [ { pageY : 0 } ] ,
368
+ } ;
369
+ const touchmoveEvent = {
370
+ targetTouches : [ { pageY : - 21 } ] ,
371
+ } ;
372
+ const touchendEvent = {
373
+ changedTouches : [ { pageY : - 21 } ] ,
374
+ } ;
375
+
376
+ eventTrigger ( second , 'touchstart' , touchstartEvent ) ;
377
+ eventTrigger ( second , 'touchmove' , touchmoveEvent ) ;
378
+ eventTrigger ( second , 'touchend' , touchendEvent ) ;
379
+
380
+ return delay ( 250 )
381
+ . then ( ( ) => {
382
+ expect ( mountedDatepicker . state ( 'value' ) . getTime ( ) ) . to . equals ( new Date ( 2016 , 8 , 16 , 8 , 23 , 2 ) . getTime ( ) ) ;
383
+ } )
384
+ } ) ;
385
+
386
+
387
+ it ( '当datesteps等于[5, 5, 5], dateFormart等于[hh, mm, ss], 当前时间为8:20:57,向上滑动秒,最大时间是8:20:59, 分钟应该为22' , ( ) => {
388
+ props . dateFormat = [ 'hh' , 'mm' , 'ss' ] ;
389
+ props . dateSteps = [ 1 , 1 , 5 ] ;
390
+ props . max = new Date ( 2016 , 8 , 16 , 8 , 22 , 59 ) ;
391
+
392
+ const datePickerItems = datePicker ( ) . find ( DatePickerItem ) ;
393
+ const second = dayPicker . find ( '.datepicker-viewport' ) . instance ( ) ;
394
+
395
+ const touchstartEvent = {
396
+ targetTouches : [ { pageY : 0 } ] ,
397
+ } ;
398
+ const touchmoveEvent = {
399
+ targetTouches : [ { pageY : - 21 } ] ,
400
+ } ;
401
+ const touchendEvent = {
402
+ changedTouches : [ { pageY : - 21 } ] ,
403
+ } ;
404
+
405
+ eventTrigger ( second , 'touchstart' , touchstartEvent ) ;
406
+ eventTrigger ( second , 'touchmove' , touchmoveEvent ) ;
407
+ eventTrigger ( second , 'touchend' , touchendEvent ) ;
408
+
409
+ return delay ( 250 )
410
+ . then ( ( ) => {
411
+ expect ( mountedDatepicker . state ( 'value' ) . getTime ( ) ) . to . equals ( new Date ( 2016 , 8 , 16 , 8 , 22 , 57 ) . getTime ( ) ) ;
412
+ } )
413
+ } ) ;
414
+ } ) ;
0 commit comments