@@ -301,19 +301,34 @@ describe('droppable directive', () => {
301
301
triggerDomEvent ( 'mousedown' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
302
302
triggerDomEvent ( 'mousemove' , draggableElement , {
303
303
clientX : 5 ,
304
- clientY : 60
304
+ clientY : 11
305
305
} ) ;
306
- scrollFixture . componentInstance . scrollContainer . elementRef . nativeElement . scrollTop = 100 ;
306
+ scrollFixture . componentInstance . scrollContainer . elementRef . nativeElement . scrollTop = 150 ;
307
307
scrollFixture . debugElement
308
308
. query ( By . directive ( DraggableScrollContainerDirective ) )
309
309
. triggerEventHandler ( 'scroll' , { } ) ;
310
310
triggerDomEvent ( 'mousemove' , draggableElement , {
311
311
clientX : 5 ,
312
- clientY : 61
312
+ clientY : 10
313
313
} ) ;
314
- triggerDomEvent ( 'mouseup' , draggableElement , { clientX : 5 , clientY : 61 } ) ;
314
+ triggerDomEvent ( 'mouseup' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
315
315
expect ( scrollFixture . componentInstance . drop ) . to . have . been . calledWith ( {
316
316
dropData : { foo : 'bar' }
317
317
} ) ;
318
318
} ) ;
319
+
320
+ it ( 'should not fire drop events when the element is scrolled out of the view' , ( ) => {
321
+ const scrollFixture = TestBed . createComponent ( ScrollTestComponent ) ;
322
+ scrollFixture . detectChanges ( ) ;
323
+ document . body . appendChild ( scrollFixture . nativeElement ) ;
324
+ const draggableElement =
325
+ scrollFixture . componentInstance . draggableElement . nativeElement ;
326
+ triggerDomEvent ( 'mousedown' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
327
+ triggerDomEvent ( 'mousemove' , draggableElement , {
328
+ clientX : 5 ,
329
+ clientY : 150
330
+ } ) ;
331
+ triggerDomEvent ( 'mouseup' , draggableElement , { clientX : 5 , clientY : 150 } ) ;
332
+ expect ( scrollFixture . componentInstance . drop ) . not . to . have . been . called ;
333
+ } ) ;
319
334
} ) ;
0 commit comments