@@ -294,4 +294,39 @@ describe('calendarWeekView component', () => {
294
294
} ) ;
295
295
} ) ;
296
296
297
+ it ( 'should allow the event to be dragged and dropped' , ( ) => {
298
+ const fixture : ComponentFixture < CalendarWeekViewComponent > = TestBed . createComponent ( CalendarWeekViewComponent ) ;
299
+ fixture . componentInstance . viewDate = new Date ( '2016-12-08' ) ;
300
+ fixture . componentInstance . events = [ {
301
+ title : 'foo' ,
302
+ color : { primary : '' , secondary : '' } ,
303
+ start : moment ( '2016-12-08' ) . add ( 4 , 'hours' ) . toDate ( ) ,
304
+ end : moment ( '2016-12-08' ) . add ( 6 , 'hours' ) . toDate ( ) ,
305
+ draggable : true
306
+ } ] ;
307
+ fixture . componentInstance . ngOnChanges ( { viewDate : { } , events : { } } ) ;
308
+ fixture . detectChanges ( ) ;
309
+ document . body . appendChild ( fixture . nativeElement ) ;
310
+ const event : HTMLElement = fixture . nativeElement . querySelector ( '.cal-event-container' ) ;
311
+ const dayWidth : number = event . parentElement . offsetWidth / 7 ;
312
+ const eventPosition : ClientRect = event . getBoundingClientRect ( ) ;
313
+ let dragEvent : CalendarEventTimesChangedEvent ;
314
+ fixture . componentInstance . eventTimesChanged . subscribe ( event => {
315
+ dragEvent = event ;
316
+ } ) ;
317
+ triggerDomEvent ( 'mousedown' , event , { clientX : eventPosition . left , clientY : eventPosition . top } ) ;
318
+ fixture . detectChanges ( ) ;
319
+ triggerDomEvent ( 'mousemove' , document . body , { clientX : eventPosition . left - 50 , clientY : eventPosition . top } ) ;
320
+ fixture . detectChanges ( ) ;
321
+ expect ( Math . round ( event . getBoundingClientRect ( ) . left ) ) . to . equal ( Math . round ( eventPosition . left - dayWidth ) ) ;
322
+ triggerDomEvent ( 'mouseup' , document . body , { clientX : eventPosition . left - dayWidth , clientY : eventPosition . top } ) ;
323
+ fixture . detectChanges ( ) ;
324
+ fixture . destroy ( ) ;
325
+ expect ( dragEvent ) . to . deep . equal ( {
326
+ event : fixture . componentInstance . events [ 0 ] ,
327
+ newStart : moment ( '2016-12-07' ) . add ( 4 , 'hours' ) . toDate ( ) ,
328
+ newEnd : moment ( '2016-12-07' ) . add ( 6 , 'hours' ) . toDate ( )
329
+ } ) ;
330
+ } ) ;
331
+
297
332
} ) ;
0 commit comments