@@ -333,6 +333,44 @@ describe('CalendarDayViewComponent component', () => {
333
333
} ) ;
334
334
} ) ;
335
335
336
+ it ( 'should resize the event and respect the event snap size' , ( ) => {
337
+ const fixture : ComponentFixture < CalendarDayViewComponent > = TestBed . createComponent ( CalendarDayViewComponent ) ;
338
+ fixture . componentInstance . viewDate = new Date ( '2016-06-27' ) ;
339
+ fixture . componentInstance . events = [ {
340
+ title : 'foo' ,
341
+ color : { primary : '' , secondary : '' } ,
342
+ start : moment ( '2016-06-27' ) . add ( 4 , 'hours' ) . toDate ( ) ,
343
+ end : moment ( '2016-06-27' ) . add ( 6 , 'hours' ) . toDate ( ) ,
344
+ resizable : {
345
+ beforeStart : true
346
+ }
347
+ } ] ;
348
+ fixture . componentInstance . eventSnapSize = 1 ;
349
+ fixture . componentInstance . ngOnChanges ( { viewDate : { } , events : { } } ) ;
350
+ fixture . detectChanges ( ) ;
351
+ document . body . appendChild ( fixture . nativeElement ) ;
352
+ const event : HTMLElement = fixture . nativeElement . querySelector ( '.cal-event-container' ) ;
353
+ const rect : ClientRect = event . getBoundingClientRect ( ) ;
354
+ let resizeEvent : CalendarEventTimesChangedEvent ;
355
+ fixture . componentInstance . eventTimesChanged . subscribe ( event => {
356
+ resizeEvent = event ;
357
+ } ) ;
358
+ triggerDomEvent ( 'mousedown' , document . body , { clientY : rect . top , clientX : rect . left + 10 } ) ;
359
+ fixture . detectChanges ( ) ;
360
+ triggerDomEvent ( 'mousemove' , document . body , { clientY : rect . top - 10 , clientX : rect . left + 10 } ) ;
361
+ fixture . detectChanges ( ) ;
362
+ expect ( event . getBoundingClientRect ( ) . top ) . to . equal ( rect . top - 10 ) ;
363
+ expect ( event . getBoundingClientRect ( ) . height ) . to . equal ( rect . height + 10 ) ;
364
+ triggerDomEvent ( 'mouseup' , document . body , { clientY : rect . top - 10 , clientX : rect . left + 10 } ) ;
365
+ fixture . detectChanges ( ) ;
366
+ fixture . destroy ( ) ;
367
+ expect ( resizeEvent ) . to . deep . equal ( {
368
+ event : fixture . componentInstance . events [ 0 ] ,
369
+ newStart : moment ( '2016-06-27' ) . add ( 4 , 'hours' ) . subtract ( 10 , 'minutes' ) . toDate ( ) ,
370
+ newEnd : moment ( '2016-06-27' ) . add ( 6 , 'hours' ) . toDate ( )
371
+ } ) ;
372
+ } ) ;
373
+
336
374
it ( 'should show a tooltip on mouseover of the event' , ( ) => {
337
375
338
376
const fixture : ComponentFixture < CalendarDayViewComponent > = TestBed . createComponent ( CalendarDayViewComponent ) ;
0 commit comments