@@ -376,4 +376,39 @@ describe('CalendarDayViewComponent component', () => {
376
376
377
377
} ) ;
378
378
379
+ it ( 'should allow events to be dragged and dropped' , ( ) => {
380
+ const fixture : ComponentFixture < CalendarDayViewComponent > = TestBed . createComponent ( CalendarDayViewComponent ) ;
381
+ fixture . componentInstance . viewDate = new Date ( '2016-06-27' ) ;
382
+ fixture . componentInstance . events = [ {
383
+ title : 'foo' ,
384
+ color : { primary : '' , secondary : '' } ,
385
+ start : moment ( '2016-06-27' ) . add ( 4 , 'hours' ) . toDate ( ) ,
386
+ end : moment ( '2016-06-27' ) . add ( 6 , 'hours' ) . toDate ( ) ,
387
+ draggable : true
388
+ } ] ;
389
+ fixture . componentInstance . ngOnChanges ( { viewDate : { } , events : { } } ) ;
390
+ fixture . detectChanges ( ) ;
391
+ document . body . appendChild ( fixture . nativeElement ) ;
392
+ const event : HTMLElement = fixture . nativeElement . querySelector ( '.cal-event' ) ;
393
+ const eventPosition : ClientRect = event . getBoundingClientRect ( ) ;
394
+ let dragEvent : CalendarEventTimesChangedEvent ;
395
+ fixture . componentInstance . eventTimesChanged . subscribe ( event => {
396
+ dragEvent = event ;
397
+ } ) ;
398
+ triggerDomEvent ( 'mousedown' , event , { clientY : eventPosition . top + 5 , clientX : eventPosition . left + 10 } ) ;
399
+ fixture . detectChanges ( ) ;
400
+ triggerDomEvent ( 'mousemove' , document . body , { clientY : eventPosition . top - 5 , clientX : eventPosition . left + 10 } ) ;
401
+ fixture . detectChanges ( ) ;
402
+ expect ( event . getBoundingClientRect ( ) . top ) . to . equal ( eventPosition . top - 30 ) ;
403
+ expect ( event . getBoundingClientRect ( ) . bottom ) . to . equal ( eventPosition . bottom - 30 ) ;
404
+ triggerDomEvent ( 'mouseup' , document . body , { clientY : eventPosition . top - 30 , clientX : eventPosition . left + 10 } ) ;
405
+ fixture . detectChanges ( ) ;
406
+ fixture . destroy ( ) ;
407
+ expect ( dragEvent ) . to . deep . equal ( {
408
+ event : fixture . componentInstance . events [ 0 ] ,
409
+ newStart : moment ( '2016-06-27' ) . add ( 4 , 'hours' ) . subtract ( 30 , 'minutes' ) . toDate ( ) ,
410
+ newEnd : moment ( '2016-06-27' ) . add ( 6 , 'hours' ) . subtract ( 30 , 'minutes' ) . toDate ( )
411
+ } ) ;
412
+ } ) ;
413
+
379
414
} ) ;
0 commit comments