@@ -580,7 +580,6 @@ describe("draggable.vue when initialized with list", () => {
580
580
} )
581
581
} ) ;
582
582
583
-
584
583
describe ( "when initiating a drag operation in clone context" , ( ) => {
585
584
let evt ;
586
585
beforeEach ( ( ) => {
@@ -609,6 +608,73 @@ describe("draggable.vue when initialized with list", () => {
609
608
expect ( vm . isCloning ) . toBe ( true ) ;
610
609
} )
611
610
611
+ describe ( "when remove is called" , ( ) => {
612
+ beforeEach ( ( ) => {
613
+ var clone = item . cloneNode ( true ) ;
614
+ wrapper . element . insertBefore ( clone , item ) ;
615
+ wrapper . element . removeChild ( item ) ;
616
+ const remove = getEvent ( "onRemove" ) ;
617
+ remove ( {
618
+ item,
619
+ clone,
620
+ oldIndex : 1
621
+ } ) ;
622
+ } )
623
+
624
+ it ( "DOM changes should be reverted" , async ( ) => {
625
+ await Vue . nextTick ( ) ;
626
+ expect ( wrapper . html ( ) ) . toEqual ( initialRenderRaw ) ;
627
+ } )
628
+
629
+ it ( "list should be not updated" , async ( ) => {
630
+ await Vue . nextTick ( ) ;
631
+ expect ( vm . list ) . toEqual ( [ "a" , "b" , "c" ] ) ;
632
+ } )
633
+
634
+ it ( "sends a remove event" , async ( ) => {
635
+ await Vue . nextTick ( ) ;
636
+ expect ( wrapper . emitted ( ) . remove ) . toEqual ( [ [ {
637
+ item,
638
+ clone : item ,
639
+ oldIndex : 1
640
+ } ] ] ) ;
641
+ } )
642
+
643
+ it ( "does not send a change event" , async ( ) => {
644
+ await Vue . nextTick ( ) ;
645
+ expect ( wrapper . emitted ( ) . change ) . toBeUndefined ( ) ;
646
+ } )
647
+ } )
648
+ } ) ;
649
+
650
+ describe ( "when initiating a drag operation in clone context using a pull function" , ( ) => {
651
+ let evt ;
652
+ beforeEach ( ( ) => {
653
+ resetMocks ( ) ;
654
+ wrapper = shallowMount ( draggable , {
655
+ attachToDocument : true ,
656
+ propsData : {
657
+ list : items
658
+ } ,
659
+ attrs : {
660
+ group : { pull : ( ) => "clone" }
661
+ } ,
662
+ slots : {
663
+ default : items . map ( item => `<div>${ item } </div>` ) ,
664
+ }
665
+ } ) ;
666
+ vm = wrapper . vm ;
667
+ element = wrapper . element ;
668
+ item = element . children [ 1 ] ;
669
+ evt = { item } ;
670
+ const start = getEvent ( "onStart" ) ;
671
+ start ( evt ) ;
672
+ } ) ;
673
+
674
+ it ( "sets the isCloning flag" , ( ) => {
675
+ expect ( vm . isCloning ) . toBe ( true ) ;
676
+ } )
677
+
612
678
describe ( "when remove is called" , ( ) => {
613
679
beforeEach ( ( ) => {
614
680
var clone = item . cloneNode ( true ) ;
0 commit comments