@@ -2,14 +2,10 @@ import { mount, config } from "@vue/test-utils";
2
2
import Sortable from "sortablejs" ;
3
3
jest . mock ( "sortablejs" ) ;
4
4
const SortableFake = {
5
- el : null ,
6
5
destroy : jest . fn ( ) ,
7
6
option : jest . fn ( )
8
7
} ;
9
- Sortable . mockImplementation ( element => {
10
- SortableFake . el = element ;
11
- return SortableFake ;
12
- } ) ;
8
+ Sortable . mockImplementation ( ( ) => SortableFake ) ;
13
9
import draggable from "@/vuedraggable" ;
14
10
import { nextTick , h } from "vue" ;
15
11
@@ -341,6 +337,7 @@ describe("draggable.vue when initialized with list", () => {
341
337
342
338
describe ( "when add is called" , ( ) => {
343
339
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>` ;
344
341
beforeEach ( async ( ) => {
345
342
await nextTick ( ) ;
346
343
newItem = document . createElement ( "div" ) ;
@@ -349,16 +346,17 @@ describe("draggable.vue when initialized with list", () => {
349
346
newItem . _underlying_vm_ = "d" ;
350
347
const last = element . children [ 3 ] ;
351
348
element . insertBefore ( newItem , last ) ;
349
+
352
350
const add = getEvent ( "onAdd" ) ;
353
351
add ( {
354
352
item : newItem ,
355
353
newIndex : 3
356
354
} ) ;
357
355
} ) ;
358
356
359
- it ( "DOM changes should be reverted " , async ( ) => {
357
+ it ( "DOM changes should be performed " , async ( ) => {
360
358
await nextTick ( ) ;
361
- expectHTML ( wrapper , initialRender ) ;
359
+ expectHTML ( wrapper , expectedDOMAfterUpdate ) ;
362
360
} ) ;
363
361
364
362
it ( "list should be updated" , async ( ) => {
@@ -506,6 +504,7 @@ describe("draggable.vue when initialized with list", () => {
506
504
} ) ;
507
505
508
506
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>` ;
509
508
beforeEach ( ( ) => {
510
509
element . removeChild ( item ) ;
511
510
const remove = getEvent ( "onRemove" ) ;
@@ -515,9 +514,9 @@ describe("draggable.vue when initialized with list", () => {
515
514
} ) ;
516
515
} ) ;
517
516
518
- it ( "DOM changes should be reverted " , async ( ) => {
517
+ it ( "DOM should be updated " , async ( ) => {
519
518
await nextTick ( ) ;
520
- expectHTML ( wrapper , initialRender ) ;
519
+ expectHTML ( wrapper , expectedDomAfterRemove ) ;
521
520
} ) ;
522
521
523
522
it ( "list should be updated" , async ( ) => {
@@ -544,6 +543,10 @@ describe("draggable.vue when initialized with list", () => {
544
543
] ) (
545
544
"when update is called with new index being %i" ,
546
545
( index , expectedList ) => {
546
+ const expectedDomAfterUpdate = `<div><header></header>${ expectedList
547
+ . map ( value => `<div data-draggable="true">${ value } </div>` )
548
+ . join ( "" ) } <footer></footer></div>`;
549
+
547
550
beforeEach ( ( ) => {
548
551
const firstDraggable = element . children [ index ] ;
549
552
element . removeChild ( item ) ;
@@ -557,9 +560,9 @@ describe("draggable.vue when initialized with list", () => {
557
560
} ) ;
558
561
} ) ;
559
562
560
- it ( "DOM changes should be reverted " , async ( ) => {
563
+ it ( "DOM should be updated " , async ( ) => {
561
564
await nextTick ( ) ;
562
- expectHTML ( wrapper , initialRender ) ;
565
+ expectHTML ( wrapper , expectedDomAfterUpdate ) ;
563
566
} ) ;
564
567
565
568
it ( "list should be updated" , async ( ) => {
@@ -1046,6 +1049,9 @@ describe("draggable.vue when initialized with a transition group", () => {
1046
1049
props : {
1047
1050
modelValue : items ,
1048
1051
tag : "transition-group" ,
1052
+ componentData : {
1053
+ tag : "div"
1054
+ } ,
1049
1055
itemKey : k => k
1050
1056
} ,
1051
1057
slots : {
@@ -1076,7 +1082,7 @@ describe("draggable.vue when initialized with a transition group", () => {
1076
1082
describe ( "when initiating a drag operation" , ( ) => {
1077
1083
let evt ;
1078
1084
beforeEach ( ( ) => {
1079
- item = element . children [ 0 ] . children [ 1 ] ;
1085
+ item = element . children [ 1 ] ;
1080
1086
evt = { item } ;
1081
1087
const start = getEvent ( "onStart" ) ;
1082
1088
start ( evt ) ;
@@ -1099,7 +1105,7 @@ describe("draggable.vue when initialized with a transition group", () => {
1099
1105
1100
1106
describe ( "when remove is called" , ( ) => {
1101
1107
beforeEach ( ( ) => {
1102
- element . children [ 0 ] . removeChild ( item ) ;
1108
+ element . removeChild ( item ) ;
1103
1109
const remove = getEvent ( "onRemove" ) ;
1104
1110
remove ( {
1105
1111
item,
@@ -1134,7 +1140,6 @@ describe("draggable.vue when initialized with a transition group", () => {
1134
1140
describe ( "when update is called" , ( ) => {
1135
1141
beforeEach ( ( ) => {
1136
1142
const transitionRoot = element ;
1137
- //.children[0];
1138
1143
const firstDraggable = transitionRoot . children [ 0 ] ;
1139
1144
transitionRoot . removeChild ( item ) ;
1140
1145
transitionRoot . insertBefore ( item , firstDraggable ) ;
@@ -1164,7 +1169,7 @@ describe("draggable.vue when initialized with a transition group", () => {
1164
1169
item,
1165
1170
oldIndex : 1 ,
1166
1171
newIndex : 0 ,
1167
- from : element . children [ 0 ]
1172
+ from : element
1168
1173
} ;
1169
1174
expect ( wrapper . emitted ( ) . update ) . toEqual ( [ [ expectedEvt ] ] ) ;
1170
1175
} ) ;
@@ -1187,8 +1192,8 @@ describe("draggable.vue when initialized with a transition group", () => {
1187
1192
move = jest . fn ( ) ;
1188
1193
wrapper . setProps ( { move } ) ;
1189
1194
evt = {
1190
- to : element . children [ 0 ] ,
1191
- related : element . children [ 0 ] . children [ 1 ] ,
1195
+ to : element ,
1196
+ related : element . children [ 1 ] ,
1192
1197
willInsertAfter : false
1193
1198
} ;
1194
1199
originalEvt = {
@@ -1210,8 +1215,8 @@ describe("draggable.vue when initialized with a transition group", () => {
1210
1215
index : 1 ,
1211
1216
list : [ "a" , "b" , "c" ]
1212
1217
} ,
1213
- to : element . children [ 0 ] ,
1214
- related : element . children [ 0 ] . children [ 1 ] ,
1218
+ to : element ,
1219
+ related : element . children [ 1 ] ,
1215
1220
willInsertAfter : false
1216
1221
} ;
1217
1222
doMove ( ) ;
0 commit comments