@@ -2,14 +2,10 @@ import { mount, config } from "@vue/test-utils";
22import Sortable from "sortablejs" ;
33jest . mock ( "sortablejs" ) ;
44const SortableFake = {
5- el : null ,
65 destroy : jest . fn ( ) ,
76 option : jest . fn ( )
87} ;
9- Sortable . mockImplementation ( element => {
10- SortableFake . el = element ;
11- return SortableFake ;
12- } ) ;
8+ Sortable . mockImplementation ( ( ) => SortableFake ) ;
139import draggable from "@/vuedraggable" ;
1410import { nextTick , h } from "vue" ;
1511
@@ -341,6 +337,7 @@ describe("draggable.vue when initialized with list", () => {
341337
342338 describe ( "when add is called" , ( ) => {
343339 let newItem ;
340+ const expectedDOMAfterUpdate = `<div><header></header><div data-draggable="true">a</div><div data-draggable="true">b</div><div data-draggable="true">d</div><div data-draggable="true">c</div><footer></footer></div>` ;
344341 beforeEach ( async ( ) => {
345342 await nextTick ( ) ;
346343 newItem = document . createElement ( "div" ) ;
@@ -349,16 +346,17 @@ describe("draggable.vue when initialized with list", () => {
349346 newItem . _underlying_vm_ = "d" ;
350347 const last = element . children [ 3 ] ;
351348 element . insertBefore ( newItem , last ) ;
349+
352350 const add = getEvent ( "onAdd" ) ;
353351 add ( {
354352 item : newItem ,
355353 newIndex : 3
356354 } ) ;
357355 } ) ;
358356
359- it ( "DOM changes should be reverted " , async ( ) => {
357+ it ( "DOM changes should be performed " , async ( ) => {
360358 await nextTick ( ) ;
361- expectHTML ( wrapper , initialRender ) ;
359+ expectHTML ( wrapper , expectedDOMAfterUpdate ) ;
362360 } ) ;
363361
364362 it ( "list should be updated" , async ( ) => {
@@ -506,6 +504,7 @@ describe("draggable.vue when initialized with list", () => {
506504 } ) ;
507505
508506 describe ( "when remove is called" , ( ) => {
507+ const expectedDomAfterRemove = `<div><header></header><div data-draggable="true">a</div><div data-draggable="true">c</div><footer></footer></div>` ;
509508 beforeEach ( ( ) => {
510509 element . removeChild ( item ) ;
511510 const remove = getEvent ( "onRemove" ) ;
@@ -515,9 +514,9 @@ describe("draggable.vue when initialized with list", () => {
515514 } ) ;
516515 } ) ;
517516
518- it ( "DOM changes should be reverted " , async ( ) => {
517+ it ( "DOM should be updated " , async ( ) => {
519518 await nextTick ( ) ;
520- expectHTML ( wrapper , initialRender ) ;
519+ expectHTML ( wrapper , expectedDomAfterRemove ) ;
521520 } ) ;
522521
523522 it ( "list should be updated" , async ( ) => {
@@ -544,6 +543,10 @@ describe("draggable.vue when initialized with list", () => {
544543 ] ) (
545544 "when update is called with new index being %i" ,
546545 ( index , expectedList ) => {
546+ const expectedDomAfterUpdate = `<div><header></header>${ expectedList
547+ . map ( value => `<div data-draggable="true">${ value } </div>` )
548+ . join ( "" ) } <footer></footer></div>`;
549+
547550 beforeEach ( ( ) => {
548551 const firstDraggable = element . children [ index ] ;
549552 element . removeChild ( item ) ;
@@ -557,9 +560,9 @@ describe("draggable.vue when initialized with list", () => {
557560 } ) ;
558561 } ) ;
559562
560- it ( "DOM changes should be reverted " , async ( ) => {
563+ it ( "DOM should be updated " , async ( ) => {
561564 await nextTick ( ) ;
562- expectHTML ( wrapper , initialRender ) ;
565+ expectHTML ( wrapper , expectedDomAfterUpdate ) ;
563566 } ) ;
564567
565568 it ( "list should be updated" , async ( ) => {
@@ -1046,6 +1049,9 @@ describe("draggable.vue when initialized with a transition group", () => {
10461049 props : {
10471050 modelValue : items ,
10481051 tag : "transition-group" ,
1052+ componentData : {
1053+ tag : "div"
1054+ } ,
10491055 itemKey : k => k
10501056 } ,
10511057 slots : {
@@ -1076,7 +1082,7 @@ describe("draggable.vue when initialized with a transition group", () => {
10761082 describe ( "when initiating a drag operation" , ( ) => {
10771083 let evt ;
10781084 beforeEach ( ( ) => {
1079- item = element . children [ 0 ] . children [ 1 ] ;
1085+ item = element . children [ 1 ] ;
10801086 evt = { item } ;
10811087 const start = getEvent ( "onStart" ) ;
10821088 start ( evt ) ;
@@ -1099,7 +1105,7 @@ describe("draggable.vue when initialized with a transition group", () => {
10991105
11001106 describe ( "when remove is called" , ( ) => {
11011107 beforeEach ( ( ) => {
1102- element . children [ 0 ] . removeChild ( item ) ;
1108+ element . removeChild ( item ) ;
11031109 const remove = getEvent ( "onRemove" ) ;
11041110 remove ( {
11051111 item,
@@ -1134,7 +1140,6 @@ describe("draggable.vue when initialized with a transition group", () => {
11341140 describe ( "when update is called" , ( ) => {
11351141 beforeEach ( ( ) => {
11361142 const transitionRoot = element ;
1137- //.children[0];
11381143 const firstDraggable = transitionRoot . children [ 0 ] ;
11391144 transitionRoot . removeChild ( item ) ;
11401145 transitionRoot . insertBefore ( item , firstDraggable ) ;
@@ -1164,7 +1169,7 @@ describe("draggable.vue when initialized with a transition group", () => {
11641169 item,
11651170 oldIndex : 1 ,
11661171 newIndex : 0 ,
1167- from : element . children [ 0 ]
1172+ from : element
11681173 } ;
11691174 expect ( wrapper . emitted ( ) . update ) . toEqual ( [ [ expectedEvt ] ] ) ;
11701175 } ) ;
@@ -1187,8 +1192,8 @@ describe("draggable.vue when initialized with a transition group", () => {
11871192 move = jest . fn ( ) ;
11881193 wrapper . setProps ( { move } ) ;
11891194 evt = {
1190- to : element . children [ 0 ] ,
1191- related : element . children [ 0 ] . children [ 1 ] ,
1195+ to : element ,
1196+ related : element . children [ 1 ] ,
11921197 willInsertAfter : false
11931198 } ;
11941199 originalEvt = {
@@ -1210,8 +1215,8 @@ describe("draggable.vue when initialized with a transition group", () => {
12101215 index : 1 ,
12111216 list : [ "a" , "b" , "c" ]
12121217 } ,
1213- to : element . children [ 0 ] ,
1214- related : element . children [ 0 ] . children [ 1 ] ,
1218+ to : element ,
1219+ related : element . children [ 1 ] ,
12151220 willInsertAfter : false
12161221 } ;
12171222 doMove ( ) ;
0 commit comments