@@ -356,7 +356,31 @@ describe('CdkDrag', () => {
356
356
357
357
// Assert the event like this, rather than `toHaveBeenCalledWith`, because Jasmine will
358
358
// go into an infinite loop trying to stringify the event, if the test fails.
359
- expect ( event ) . toEqual ( { source : fixture . componentInstance . dragInstance } ) ;
359
+ expect ( event ) . toEqual ( {
360
+ source : fixture . componentInstance . dragInstance ,
361
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
362
+ } ) ;
363
+ } ) ) ;
364
+
365
+ it ( 'should include the drag distance in the ended event' , fakeAsync ( ( ) => {
366
+ const fixture = createComponent ( StandaloneDraggable ) ;
367
+ fixture . detectChanges ( ) ;
368
+
369
+ dragElementViaMouse ( fixture , fixture . componentInstance . dragElement . nativeElement , 25 , 30 ) ;
370
+ let event = fixture . componentInstance . endedSpy . calls . mostRecent ( ) . args [ 0 ] ;
371
+
372
+ expect ( event ) . toEqual ( {
373
+ source : jasmine . anything ( ) ,
374
+ distance : { x : 25 , y : 30 }
375
+ } ) ;
376
+
377
+ dragElementViaMouse ( fixture , fixture . componentInstance . dragElement . nativeElement , 40 , 50 ) ;
378
+ event = fixture . componentInstance . endedSpy . calls . mostRecent ( ) . args [ 0 ] ;
379
+
380
+ expect ( event ) . toEqual ( {
381
+ source : jasmine . anything ( ) ,
382
+ distance : { x : 40 , y : 50 }
383
+ } ) ;
360
384
} ) ) ;
361
385
362
386
it ( 'should emit when the user is moving the drag element' , ( ) => {
@@ -855,6 +879,30 @@ describe('CdkDrag', () => {
855
879
expect ( dragElement . style . transform ) . toBe ( 'translate3d(150px, 300px, 0px)' ) ;
856
880
} ) ) ;
857
881
882
+ it ( 'should include the dragged distance as the user is dragging' , fakeAsync ( ( ) => {
883
+ const fixture = createComponent ( StandaloneDraggable ) ;
884
+ fixture . detectChanges ( ) ;
885
+ const dragElement = fixture . componentInstance . dragElement . nativeElement ;
886
+ const spy = jasmine . createSpy ( 'moved spy' ) ;
887
+ const subscription = fixture . componentInstance . dragInstance . moved . subscribe ( spy ) ;
888
+
889
+ startDraggingViaMouse ( fixture , dragElement ) ;
890
+
891
+ dispatchMouseEvent ( document , 'mousemove' , 50 , 100 ) ;
892
+ fixture . detectChanges ( ) ;
893
+
894
+ let event = spy . calls . mostRecent ( ) . args [ 0 ] ;
895
+ expect ( event . distance ) . toEqual ( { x : 50 , y : 100 } ) ;
896
+
897
+ dispatchMouseEvent ( document , 'mousemove' , 75 , 50 ) ;
898
+ fixture . detectChanges ( ) ;
899
+
900
+ event = spy . calls . mostRecent ( ) . args [ 0 ] ;
901
+ expect ( event . distance ) . toEqual ( { x : 75 , y : 50 } ) ;
902
+
903
+ subscription . unsubscribe ( ) ;
904
+ } ) ) ;
905
+
858
906
} ) ;
859
907
860
908
describe ( 'draggable with a handle' , ( ) => {
@@ -1160,7 +1208,8 @@ describe('CdkDrag', () => {
1160
1208
item : firstItem ,
1161
1209
container : fixture . componentInstance . dropInstance ,
1162
1210
previousContainer : fixture . componentInstance . dropInstance ,
1163
- isPointerOverContainer : true
1211
+ isPointerOverContainer : true ,
1212
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1164
1213
} ) ;
1165
1214
1166
1215
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -1187,6 +1236,24 @@ describe('CdkDrag', () => {
1187
1236
expect ( event . isPointerOverContainer ) . toBe ( true ) ;
1188
1237
} ) ) ;
1189
1238
1239
+ it ( 'should expose the drag distance when an item is dropped' , fakeAsync ( ( ) => {
1240
+ const fixture = createComponent ( DraggableInDropZone ) ;
1241
+ fixture . detectChanges ( ) ;
1242
+ const dragItems = fixture . componentInstance . dragItems ;
1243
+ const firstItem = dragItems . first ;
1244
+
1245
+ dragElementViaMouse ( fixture , firstItem . element . nativeElement , 50 , 60 ) ;
1246
+ flush ( ) ;
1247
+ fixture . detectChanges ( ) ;
1248
+
1249
+ expect ( fixture . componentInstance . droppedSpy ) . toHaveBeenCalledTimes ( 1 ) ;
1250
+
1251
+ const event : CdkDragDrop < any > =
1252
+ fixture . componentInstance . droppedSpy . calls . mostRecent ( ) . args [ 0 ] ;
1253
+
1254
+ expect ( event . distance ) . toEqual ( { x : 50 , y : 60 } ) ;
1255
+ } ) ) ;
1256
+
1190
1257
it ( 'should expose whether an item was dropped outside of a container' , fakeAsync ( ( ) => {
1191
1258
const fixture = createComponent ( DraggableInDropZone ) ;
1192
1259
fixture . detectChanges ( ) ;
@@ -1267,7 +1334,8 @@ describe('CdkDrag', () => {
1267
1334
item : firstItem ,
1268
1335
container : fixture . componentInstance . dropInstance ,
1269
1336
previousContainer : fixture . componentInstance . dropInstance ,
1270
- isPointerOverContainer : false
1337
+ isPointerOverContainer : false ,
1338
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1271
1339
} ) ;
1272
1340
1273
1341
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -1325,7 +1393,8 @@ describe('CdkDrag', () => {
1325
1393
item : firstItem ,
1326
1394
container : fixture . componentInstance . dropInstance ,
1327
1395
previousContainer : fixture . componentInstance . dropInstance ,
1328
- isPointerOverContainer : true
1396
+ isPointerOverContainer : true ,
1397
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1329
1398
} ) ;
1330
1399
1331
1400
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -1365,7 +1434,8 @@ describe('CdkDrag', () => {
1365
1434
item : firstItem ,
1366
1435
container : fixture . componentInstance . dropInstance ,
1367
1436
previousContainer : fixture . componentInstance . dropInstance ,
1368
- isPointerOverContainer : true
1437
+ isPointerOverContainer : true ,
1438
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1369
1439
} ) ;
1370
1440
1371
1441
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -1401,7 +1471,8 @@ describe('CdkDrag', () => {
1401
1471
item : firstItem ,
1402
1472
container : fixture . componentInstance . dropInstance ,
1403
1473
previousContainer : fixture . componentInstance . dropInstance ,
1404
- isPointerOverContainer : false
1474
+ isPointerOverContainer : false ,
1475
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1405
1476
} ) ;
1406
1477
1407
1478
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -2539,7 +2610,8 @@ describe('CdkDrag', () => {
2539
2610
item : firstItem ,
2540
2611
container : dropInstance ,
2541
2612
previousContainer : dropInstance ,
2542
- isPointerOverContainer : true
2613
+ isPointerOverContainer : true ,
2614
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2543
2615
} ) ;
2544
2616
2545
2617
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -2595,7 +2667,8 @@ describe('CdkDrag', () => {
2595
2667
item,
2596
2668
container : fixture . componentInstance . dropInstances . toArray ( ) [ 1 ] ,
2597
2669
previousContainer : fixture . componentInstance . dropInstances . first ,
2598
- isPointerOverContainer : true
2670
+ isPointerOverContainer : true ,
2671
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2599
2672
} ) ;
2600
2673
} ) ) ;
2601
2674
@@ -2697,7 +2770,8 @@ describe('CdkDrag', () => {
2697
2770
item : groups [ 0 ] [ 1 ] ,
2698
2771
container : dropInstances [ 1 ] ,
2699
2772
previousContainer : dropInstances [ 0 ] ,
2700
- isPointerOverContainer : true
2773
+ isPointerOverContainer : true ,
2774
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2701
2775
} ) ;
2702
2776
} ) ) ;
2703
2777
@@ -2727,7 +2801,8 @@ describe('CdkDrag', () => {
2727
2801
item : groups [ 0 ] [ 1 ] ,
2728
2802
container : dropInstances [ 0 ] ,
2729
2803
previousContainer : dropInstances [ 0 ] ,
2730
- isPointerOverContainer : false
2804
+ isPointerOverContainer : false ,
2805
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2731
2806
} ) ;
2732
2807
} ) ) ;
2733
2808
@@ -2757,7 +2832,8 @@ describe('CdkDrag', () => {
2757
2832
item : groups [ 0 ] [ 1 ] ,
2758
2833
container : dropInstances [ 0 ] ,
2759
2834
previousContainer : dropInstances [ 0 ] ,
2760
- isPointerOverContainer : false
2835
+ isPointerOverContainer : false ,
2836
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2761
2837
} ) ;
2762
2838
} ) ) ;
2763
2839
@@ -2880,7 +2956,8 @@ describe('CdkDrag', () => {
2880
2956
item : groups [ 0 ] [ 1 ] ,
2881
2957
container : dropInstances [ 1 ] ,
2882
2958
previousContainer : dropInstances [ 0 ] ,
2883
- isPointerOverContainer : true
2959
+ isPointerOverContainer : true ,
2960
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2884
2961
} ) ;
2885
2962
} ) ) ;
2886
2963
@@ -2906,7 +2983,8 @@ describe('CdkDrag', () => {
2906
2983
item : groups [ 0 ] [ 1 ] ,
2907
2984
container : dropInstances [ 1 ] ,
2908
2985
previousContainer : dropInstances [ 0 ] ,
2909
- isPointerOverContainer : true
2986
+ isPointerOverContainer : true ,
2987
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2910
2988
} ) ;
2911
2989
} ) ) ;
2912
2990
@@ -2937,7 +3015,8 @@ describe('CdkDrag', () => {
2937
3015
item : groups [ 0 ] [ 1 ] ,
2938
3016
container : dropInstances [ 1 ] ,
2939
3017
previousContainer : dropInstances [ 0 ] ,
2940
- isPointerOverContainer : true
3018
+ isPointerOverContainer : true ,
3019
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2941
3020
} ) ;
2942
3021
} ) ) ;
2943
3022
@@ -2972,7 +3051,8 @@ describe('CdkDrag', () => {
2972
3051
item,
2973
3052
container : fixture . componentInstance . dropInstances . toArray ( ) [ 1 ] ,
2974
3053
previousContainer : fixture . componentInstance . dropInstances . first ,
2975
- isPointerOverContainer : true
3054
+ isPointerOverContainer : true ,
3055
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2976
3056
} ) ;
2977
3057
2978
3058
expect ( dropContainers [ 0 ] . contains ( item . element . nativeElement ) ) . toBe ( true ,
@@ -3068,7 +3148,8 @@ describe('CdkDrag', () => {
3068
3148
item : groups [ 0 ] [ 1 ] ,
3069
3149
container : dropInstances [ 0 ] ,
3070
3150
previousContainer : dropInstances [ 0 ] ,
3071
- isPointerOverContainer : false
3151
+ isPointerOverContainer : false ,
3152
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
3072
3153
} ) ;
3073
3154
} ) ) ;
3074
3155
@@ -3188,7 +3269,8 @@ describe('CdkDrag', () => {
3188
3269
item : groups [ 0 ] [ 1 ] ,
3189
3270
container : dropInstances [ 2 ] ,
3190
3271
previousContainer : dropInstances [ 0 ] ,
3191
- isPointerOverContainer : false
3272
+ isPointerOverContainer : false ,
3273
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
3192
3274
} ) ) ;
3193
3275
3194
3276
} ) ) ;
0 commit comments