Skip to content

Commit aa15146

Browse files
Improving tests
1 parent 8ad33e5 commit aa15146

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

tests/unit/vuedraggable.spec.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,53 @@ describe("draggable.vue when initialized with list", () => {
423423
});
424424
});
425425

426+
describe("when add is called on an empty list", () => {
427+
let newItem;
428+
const expectedDOMAfterUpdate = `<div><header></header><div data-draggable="true">e</div><footer></footer></div>`;
429+
beforeEach(async () => {
430+
await nextTick();
431+
432+
vm.list.splice(0, 3);
433+
newItem = document.createElement("div");
434+
const newContent = document.createTextNode("d");
435+
newItem.appendChild(newContent);
436+
newItem._underlying_vm_ = "e";
437+
const last = element.children[2];
438+
element.insertBefore(newItem, last);
439+
440+
const add = getEvent("onAdd");
441+
add({
442+
item: newItem,
443+
newIndex: 0
444+
});
445+
});
446+
447+
it("DOM changes should be performed", async () => {
448+
await nextTick();
449+
expectHTML(wrapper, expectedDOMAfterUpdate);
450+
});
451+
452+
it("list should be updated", async () => {
453+
await nextTick();
454+
expect(vm.list).toEqual(["e"]);
455+
});
456+
457+
it("sends a update event", async () => {
458+
await nextTick();
459+
const expectedEvt = {
460+
item: newItem,
461+
newIndex: 0
462+
};
463+
expect(wrapper.emitted().add).toEqual([[expectedEvt]]);
464+
});
465+
466+
it("sends a change event", async () => {
467+
await nextTick();
468+
const expectedEvt = { added: { element: "e", newIndex: 0 } };
469+
expect(wrapper.emitted().change).toEqual([[expectedEvt]]);
470+
});
471+
});
472+
426473
describe("when initiating a drag operation", () => {
427474
let evt;
428475
beforeEach(() => {

0 commit comments

Comments
 (0)