@@ -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' , ( ) => {
@@ -844,6 +868,30 @@ describe('CdkDrag', () => {
844
868
expect ( dragElement . style . transform ) . toBe ( 'translate3d(150px, 300px, 0px)' ) ;
845
869
} ) ) ;
846
870
871
+ it ( 'should include the dragged distance as the user is dragging' , fakeAsync ( ( ) => {
872
+ const fixture = createComponent ( StandaloneDraggable ) ;
873
+ fixture . detectChanges ( ) ;
874
+ const dragElement = fixture . componentInstance . dragElement . nativeElement ;
875
+ const spy = jasmine . createSpy ( 'moved spy' ) ;
876
+ const subscription = fixture . componentInstance . dragInstance . moved . subscribe ( spy ) ;
877
+
878
+ startDraggingViaMouse ( fixture , dragElement ) ;
879
+
880
+ dispatchMouseEvent ( document , 'mousemove' , 50 , 100 ) ;
881
+ fixture . detectChanges ( ) ;
882
+
883
+ let event = spy . calls . mostRecent ( ) . args [ 0 ] ;
884
+ expect ( event . distance ) . toEqual ( { x : 50 , y : 100 } ) ;
885
+
886
+ dispatchMouseEvent ( document , 'mousemove' , 75 , 50 ) ;
887
+ fixture . detectChanges ( ) ;
888
+
889
+ event = spy . calls . mostRecent ( ) . args [ 0 ] ;
890
+ expect ( event . distance ) . toEqual ( { x : 75 , y : 50 } ) ;
891
+
892
+ subscription . unsubscribe ( ) ;
893
+ } ) ) ;
894
+
847
895
} ) ;
848
896
849
897
describe ( 'draggable with a handle' , ( ) => {
@@ -1149,7 +1197,8 @@ describe('CdkDrag', () => {
1149
1197
item : firstItem ,
1150
1198
container : fixture . componentInstance . dropInstance ,
1151
1199
previousContainer : fixture . componentInstance . dropInstance ,
1152
- isPointerOverContainer : true
1200
+ isPointerOverContainer : true ,
1201
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1153
1202
} ) ;
1154
1203
1155
1204
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -1176,6 +1225,24 @@ describe('CdkDrag', () => {
1176
1225
expect ( event . isPointerOverContainer ) . toBe ( true ) ;
1177
1226
} ) ) ;
1178
1227
1228
+ it ( 'should expose the drag distance when an item is dropped' , fakeAsync ( ( ) => {
1229
+ const fixture = createComponent ( DraggableInDropZone ) ;
1230
+ fixture . detectChanges ( ) ;
1231
+ const dragItems = fixture . componentInstance . dragItems ;
1232
+ const firstItem = dragItems . first ;
1233
+
1234
+ dragElementViaMouse ( fixture , firstItem . element . nativeElement , 50 , 60 ) ;
1235
+ flush ( ) ;
1236
+ fixture . detectChanges ( ) ;
1237
+
1238
+ expect ( fixture . componentInstance . droppedSpy ) . toHaveBeenCalledTimes ( 1 ) ;
1239
+
1240
+ const event : CdkDragDrop < any > =
1241
+ fixture . componentInstance . droppedSpy . calls . mostRecent ( ) . args [ 0 ] ;
1242
+
1243
+ expect ( event . distance ) . toEqual ( { x : 50 , y : 60 } ) ;
1244
+ } ) ) ;
1245
+
1179
1246
it ( 'should expose whether an item was dropped outside of a container' , fakeAsync ( ( ) => {
1180
1247
const fixture = createComponent ( DraggableInDropZone ) ;
1181
1248
fixture . detectChanges ( ) ;
@@ -1256,7 +1323,8 @@ describe('CdkDrag', () => {
1256
1323
item : firstItem ,
1257
1324
container : fixture . componentInstance . dropInstance ,
1258
1325
previousContainer : fixture . componentInstance . dropInstance ,
1259
- isPointerOverContainer : false
1326
+ isPointerOverContainer : false ,
1327
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1260
1328
} ) ;
1261
1329
1262
1330
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -1314,7 +1382,8 @@ describe('CdkDrag', () => {
1314
1382
item : firstItem ,
1315
1383
container : fixture . componentInstance . dropInstance ,
1316
1384
previousContainer : fixture . componentInstance . dropInstance ,
1317
- isPointerOverContainer : true
1385
+ isPointerOverContainer : true ,
1386
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1318
1387
} ) ;
1319
1388
1320
1389
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -1354,7 +1423,8 @@ describe('CdkDrag', () => {
1354
1423
item : firstItem ,
1355
1424
container : fixture . componentInstance . dropInstance ,
1356
1425
previousContainer : fixture . componentInstance . dropInstance ,
1357
- isPointerOverContainer : true
1426
+ isPointerOverContainer : true ,
1427
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1358
1428
} ) ;
1359
1429
1360
1430
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -1390,7 +1460,8 @@ describe('CdkDrag', () => {
1390
1460
item : firstItem ,
1391
1461
container : fixture . componentInstance . dropInstance ,
1392
1462
previousContainer : fixture . componentInstance . dropInstance ,
1393
- isPointerOverContainer : false
1463
+ isPointerOverContainer : false ,
1464
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
1394
1465
} ) ;
1395
1466
1396
1467
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -2508,7 +2579,8 @@ describe('CdkDrag', () => {
2508
2579
item : firstItem ,
2509
2580
container : dropInstance ,
2510
2581
previousContainer : dropInstance ,
2511
- isPointerOverContainer : true
2582
+ isPointerOverContainer : true ,
2583
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2512
2584
} ) ;
2513
2585
2514
2586
expect ( dragItems . map ( drag => drag . element . nativeElement . textContent ! . trim ( ) ) )
@@ -2543,7 +2615,8 @@ describe('CdkDrag', () => {
2543
2615
item,
2544
2616
container : fixture . componentInstance . dropInstances . toArray ( ) [ 1 ] ,
2545
2617
previousContainer : fixture . componentInstance . dropInstances . first ,
2546
- isPointerOverContainer : true
2618
+ isPointerOverContainer : true ,
2619
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2547
2620
} ) ;
2548
2621
} ) ) ;
2549
2622
@@ -2645,7 +2718,8 @@ describe('CdkDrag', () => {
2645
2718
item : groups [ 0 ] [ 1 ] ,
2646
2719
container : dropInstances [ 1 ] ,
2647
2720
previousContainer : dropInstances [ 0 ] ,
2648
- isPointerOverContainer : true
2721
+ isPointerOverContainer : true ,
2722
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2649
2723
} ) ;
2650
2724
} ) ) ;
2651
2725
@@ -2675,7 +2749,8 @@ describe('CdkDrag', () => {
2675
2749
item : groups [ 0 ] [ 1 ] ,
2676
2750
container : dropInstances [ 0 ] ,
2677
2751
previousContainer : dropInstances [ 0 ] ,
2678
- isPointerOverContainer : false
2752
+ isPointerOverContainer : false ,
2753
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2679
2754
} ) ;
2680
2755
} ) ) ;
2681
2756
@@ -2705,7 +2780,8 @@ describe('CdkDrag', () => {
2705
2780
item : groups [ 0 ] [ 1 ] ,
2706
2781
container : dropInstances [ 0 ] ,
2707
2782
previousContainer : dropInstances [ 0 ] ,
2708
- isPointerOverContainer : false
2783
+ isPointerOverContainer : false ,
2784
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2709
2785
} ) ;
2710
2786
} ) ) ;
2711
2787
@@ -2828,7 +2904,8 @@ describe('CdkDrag', () => {
2828
2904
item : groups [ 0 ] [ 1 ] ,
2829
2905
container : dropInstances [ 1 ] ,
2830
2906
previousContainer : dropInstances [ 0 ] ,
2831
- isPointerOverContainer : true
2907
+ isPointerOverContainer : true ,
2908
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2832
2909
} ) ;
2833
2910
} ) ) ;
2834
2911
@@ -2854,7 +2931,8 @@ describe('CdkDrag', () => {
2854
2931
item : groups [ 0 ] [ 1 ] ,
2855
2932
container : dropInstances [ 1 ] ,
2856
2933
previousContainer : dropInstances [ 0 ] ,
2857
- isPointerOverContainer : true
2934
+ isPointerOverContainer : true ,
2935
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2858
2936
} ) ;
2859
2937
} ) ) ;
2860
2938
@@ -2885,7 +2963,8 @@ describe('CdkDrag', () => {
2885
2963
item : groups [ 0 ] [ 1 ] ,
2886
2964
container : dropInstances [ 1 ] ,
2887
2965
previousContainer : dropInstances [ 0 ] ,
2888
- isPointerOverContainer : true
2966
+ isPointerOverContainer : true ,
2967
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2889
2968
} ) ;
2890
2969
} ) ) ;
2891
2970
@@ -2920,7 +2999,8 @@ describe('CdkDrag', () => {
2920
2999
item,
2921
3000
container : fixture . componentInstance . dropInstances . toArray ( ) [ 1 ] ,
2922
3001
previousContainer : fixture . componentInstance . dropInstances . first ,
2923
- isPointerOverContainer : true
3002
+ isPointerOverContainer : true ,
3003
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
2924
3004
} ) ;
2925
3005
2926
3006
expect ( dropContainers [ 0 ] . contains ( item . element . nativeElement ) ) . toBe ( true ,
@@ -3016,7 +3096,8 @@ describe('CdkDrag', () => {
3016
3096
item : groups [ 0 ] [ 1 ] ,
3017
3097
container : dropInstances [ 0 ] ,
3018
3098
previousContainer : dropInstances [ 0 ] ,
3019
- isPointerOverContainer : false
3099
+ isPointerOverContainer : false ,
3100
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
3020
3101
} ) ;
3021
3102
} ) ) ;
3022
3103
@@ -3136,7 +3217,8 @@ describe('CdkDrag', () => {
3136
3217
item : groups [ 0 ] [ 1 ] ,
3137
3218
container : dropInstances [ 2 ] ,
3138
3219
previousContainer : dropInstances [ 0 ] ,
3139
- isPointerOverContainer : false
3220
+ isPointerOverContainer : false ,
3221
+ distance : { x : jasmine . any ( Number ) , y : jasmine . any ( Number ) }
3140
3222
} ) ) ;
3141
3223
3142
3224
} ) ) ;
0 commit comments