@@ -58,11 +58,11 @@ describe('draggable directive', () => {
58
58
const draggableElement : HTMLElement =
59
59
fixture . componentInstance . draggable . element . nativeElement ;
60
60
triggerDomEvent ( 'mousedown' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
61
+ triggerDomEvent ( 'mousemove' , draggableElement , { clientX : 7 , clientY : 10 } ) ;
61
62
expect ( fixture . componentInstance . dragStart ) . to . have . been . calledWith ( {
62
63
x : 0 ,
63
64
y : 0
64
65
} ) ;
65
- triggerDomEvent ( 'mousemove' , draggableElement , { clientX : 7 , clientY : 10 } ) ;
66
66
expect ( fixture . componentInstance . dragging ) . to . have . been . calledWith ( {
67
67
x : 2 ,
68
68
y : 0
@@ -284,11 +284,11 @@ describe('draggable directive', () => {
284
284
const draggableElement : HTMLElement =
285
285
fixture . componentInstance . draggable . element . nativeElement ;
286
286
triggerDomEvent ( 'mousedown' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
287
+ triggerDomEvent ( 'mousemove' , draggableElement , { clientX : 7 , clientY : 10 } ) ;
287
288
expect ( fixture . componentInstance . dragStart ) . to . have . been . calledWith ( {
288
289
x : 0 ,
289
290
y : 0
290
291
} ) ;
291
- triggerDomEvent ( 'mousemove' , draggableElement , { clientX : 7 , clientY : 10 } ) ;
292
292
expect ( fixture . componentInstance . dragging ) . to . have . been . calledWith ( {
293
293
x : 2 ,
294
294
y : 0
@@ -354,21 +354,23 @@ describe('draggable directive', () => {
354
354
const draggableElement : HTMLElement =
355
355
fixture . componentInstance . draggable . element . nativeElement ;
356
356
triggerDomEvent ( 'mousedown' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
357
- expect ( fixture . componentInstance . dragStart ) . to . have . been . calledWith ( {
358
- x : 0 ,
359
- y : 0
360
- } ) ;
361
357
triggerDomEvent ( 'mousemove' , draggableElement , { clientX : 3 , clientY : 10 } ) ;
358
+ expect ( fixture . componentInstance . dragStart ) . not . to . have . been . called ;
362
359
expect ( fixture . componentInstance . dragging ) . not . to . have . been . calledWith ( {
363
360
x : - 2 ,
364
361
y : 0
365
362
} ) ;
366
363
triggerDomEvent ( 'mousemove' , draggableElement , { clientX : 7 , clientY : 8 } ) ;
364
+ expect ( fixture . componentInstance . dragStart ) . not . to . have . been . called ;
367
365
expect ( fixture . componentInstance . dragging ) . not . to . have . been . calledWith ( {
368
366
x : 2 ,
369
367
y : - 2
370
368
} ) ;
371
369
triggerDomEvent ( 'mousemove' , draggableElement , { clientX : 7 , clientY : 12 } ) ;
370
+ expect ( fixture . componentInstance . dragStart ) . to . have . been . calledWith ( {
371
+ x : 0 ,
372
+ y : 0
373
+ } ) ;
372
374
expect ( fixture . componentInstance . dragging ) . to . have . been . calledWith ( {
373
375
x : 2 ,
374
376
y : 2
@@ -424,13 +426,13 @@ describe('draggable directive', () => {
424
426
triggerDomEvent ( 'touchstart' , draggableElement , {
425
427
touches : [ { clientX : 5 , clientY : 10 } ]
426
428
} ) ;
429
+ triggerDomEvent ( 'touchmove' , draggableElement , {
430
+ targetTouches : [ { clientX : 7 , clientY : 10 } ]
431
+ } ) ;
427
432
expect ( fixture . componentInstance . dragStart ) . to . have . been . calledWith ( {
428
433
x : 0 ,
429
434
y : 0
430
435
} ) ;
431
- triggerDomEvent ( 'touchmove' , draggableElement , {
432
- targetTouches : [ { clientX : 7 , clientY : 10 } ]
433
- } ) ;
434
436
expect ( fixture . componentInstance . dragging ) . to . have . been . calledWith ( {
435
437
x : 2 ,
436
438
y : 0
@@ -460,13 +462,13 @@ describe('draggable directive', () => {
460
462
triggerDomEvent ( 'touchstart' , draggableElement , {
461
463
touches : [ { clientX : 5 , clientY : 10 } ]
462
464
} ) ;
465
+ triggerDomEvent ( 'touchmove' , draggableElement , {
466
+ targetTouches : [ { clientX : 7 , clientY : 10 } ]
467
+ } ) ;
463
468
expect ( fixture . componentInstance . dragStart ) . to . have . been . calledWith ( {
464
469
x : 0 ,
465
470
y : 0
466
471
} ) ;
467
- triggerDomEvent ( 'touchmove' , draggableElement , {
468
- targetTouches : [ { clientX : 7 , clientY : 10 } ]
469
- } ) ;
470
472
expect ( fixture . componentInstance . dragging ) . to . have . been . calledWith ( {
471
473
x : 2 ,
472
474
y : 0
@@ -520,22 +522,6 @@ describe('draggable directive', () => {
520
522
) . to . equal ( touchMoveUnsubscribe ) ;
521
523
} ) ;
522
524
523
- it ( 'should fire the dragEnd event when starting a drag but not actually moving it' , ( ) => {
524
- const draggableElement : HTMLElement =
525
- fixture . componentInstance . draggable . element . nativeElement ;
526
- triggerDomEvent ( 'mousedown' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
527
- expect ( fixture . componentInstance . dragStart ) . to . have . been . calledWith ( {
528
- x : 0 ,
529
- y : 0
530
- } ) ;
531
- triggerDomEvent ( 'mouseup' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
532
- expect ( fixture . componentInstance . dragEnd ) . to . have . been . calledWith ( {
533
- x : 0 ,
534
- y : 0
535
- } ) ;
536
- expect ( draggableElement . style . transform ) . not . to . be . ok ;
537
- } ) ;
538
-
539
525
it ( 'should disable the mouse move cursor' , ( ) => {
540
526
fixture . componentInstance . dragCursor = '' ;
541
527
fixture . detectChanges ( ) ;
@@ -546,4 +532,28 @@ describe('draggable directive', () => {
546
532
triggerDomEvent ( 'mouseleave' , draggableElement ) ;
547
533
expect ( draggableElement . style . cursor ) . not . to . be . ok ;
548
534
} ) ;
535
+
536
+ it ( 'should not call dragStart and dragEnd events when clicking on the draggable' , ( ) => {
537
+ const draggableElement : HTMLElement =
538
+ fixture . componentInstance . draggable . element . nativeElement ;
539
+ triggerDomEvent ( 'mousedown' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
540
+ expect ( fixture . componentInstance . dragStart ) . not . to . have . been . called ;
541
+ expect ( fixture . componentInstance . dragging ) . not . to . have . been . called ;
542
+ triggerDomEvent ( 'mouseup' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
543
+ expect ( fixture . componentInstance . dragEnd ) . not . to . have . been . called ;
544
+ expect ( draggableElement . style . transform ) . not . to . be . ok ;
545
+ } ) ;
546
+
547
+ it ( 'should call the drag start, dragging and end events in order' , ( ) => {
548
+ const draggableElement : HTMLElement =
549
+ fixture . componentInstance . draggable . element . nativeElement ;
550
+ triggerDomEvent ( 'mousedown' , draggableElement , { clientX : 5 , clientY : 10 } ) ;
551
+ triggerDomEvent ( 'mousemove' , draggableElement , { clientX : 7 , clientY : 10 } ) ;
552
+ triggerDomEvent ( 'mouseup' , draggableElement , { clientX : 7 , clientY : 8 } ) ;
553
+ sinon . assert . callOrder (
554
+ fixture . componentInstance . dragStart ,
555
+ fixture . componentInstance . dragging ,
556
+ fixture . componentInstance . dragEnd
557
+ ) ;
558
+ } ) ;
549
559
} ) ;
0 commit comments