Skip to content

Commit 19caac1

Browse files
Improving tests
1 parent b58d8cf commit 19caac1

File tree

1 file changed

+49
-7
lines changed

1 file changed

+49
-7
lines changed

tests/unit/vuedraggable.spec.js

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ let wrapper;
1313
let vm;
1414
let props;
1515
let items;
16+
let item;
1617
let element;
1718
let input;
1819
const initialRender = "<div><header></header><div>a</div><div>b</div><div>c</div><footer></footer></div>";
@@ -212,9 +213,51 @@ describe("draggable.vue when initialized with list", () => {
212213
}
213214
);
214215

216+
describe("when add is called", () => {
217+
let newItem;
218+
beforeEach(async() => {
219+
await Vue.nextTick();
220+
newItem = document.createElement("div");
221+
const newContent = document.createTextNode("d");
222+
newItem.appendChild(newContent);
223+
newItem._underlying_vm_ = "d";
224+
const last = element.children[3];
225+
element.insertBefore(newItem, last);
226+
const add = getEvent("onAdd");
227+
add({
228+
item: newItem,
229+
newIndex: 3
230+
});
231+
})
232+
233+
it("DOM changes should be reverted", async () => {
234+
await Vue.nextTick();
235+
expect(wrapper.html()).toEqual(initialRender);
236+
})
237+
238+
it("list should be updated", async () => {
239+
await Vue.nextTick();
240+
expect(vm.list).toEqual(["a", "b", "d", "c",]);
241+
})
242+
243+
it("sends a update event", async () => {
244+
await Vue.nextTick();
245+
const expectedEvt = {
246+
item: newItem,
247+
newIndex: 3
248+
};
249+
expect(wrapper.emitted().add).toEqual([[expectedEvt]]);
250+
})
251+
252+
it("sends a change event", async () => {
253+
await Vue.nextTick();
254+
const expectedEvt = { added: { element: "d", newIndex: 2 } };
255+
expect(wrapper.emitted().change).toEqual([[expectedEvt]]);
256+
})
257+
});
258+
215259
describe("when initiating a drag operation", () => {
216260
let evt;
217-
let item;
218261
beforeEach(() => {
219262
item = element.children[2];
220263
evt = { item };
@@ -312,10 +355,10 @@ describe("draggable.vue when initialized with list", () => {
312355
})
313356
});
314357

315-
describe("when sending DragEnd", () =>{
358+
describe("when sending DragEnd", () => {
316359
let endEvt;
317360
beforeEach(() => {
318-
endEvt={
361+
endEvt = {
319362
data: "data"
320363
};
321364
const onEnd = getEvent("onEnd");
@@ -336,7 +379,7 @@ describe("draggable.vue when initialized with value", () => {
336379
items = ["a", "b", "c"];
337380
wrapper = shallowMount(draggable, {
338381
attachToDocument: true,
339-
propsData:{
382+
propsData: {
340383
value: items
341384
},
342385
slots: {
@@ -350,7 +393,6 @@ describe("draggable.vue when initialized with value", () => {
350393

351394
describe("when initiating a drag operation", () => {
352395
let evt;
353-
let item;
354396
beforeEach(() => {
355397
item = element.children[1];
356398
evt = { item };
@@ -450,10 +492,10 @@ describe("draggable.vue when initialized with value", () => {
450492
})
451493
});
452494

453-
describe("when sending DragEnd", () =>{
495+
describe("when sending DragEnd", () => {
454496
let endEvt;
455497
beforeEach(() => {
456-
endEvt={
498+
endEvt = {
457499
data: "data"
458500
};
459501
const onEnd = getEvent("onEnd");

0 commit comments

Comments
 (0)