test: 💍 add some tests
This commit is contained in:
87
tests/unit/drag.spec.js
Normal file
87
tests/unit/drag.spec.js
Normal file
@@ -0,0 +1,87 @@
|
||||
import Vue from 'vue'
|
||||
import {mount} from '@vue/test-utils'
|
||||
import {Tree, VueTreeList} from '@/index'
|
||||
|
||||
describe('Drag', () => {
|
||||
let wrapper
|
||||
|
||||
beforeEach(() => {
|
||||
const tree = new Tree([
|
||||
{
|
||||
name: 'Node 1',
|
||||
id: 't1',
|
||||
pid: 0,
|
||||
children: [
|
||||
{
|
||||
name: 'Node 1-1',
|
||||
id: 't11',
|
||||
isLeaf: true,
|
||||
pid: 't1'
|
||||
},
|
||||
{
|
||||
name: 'Node 1-2',
|
||||
id: 't12',
|
||||
pid: 't1'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Node 2',
|
||||
id: 't2',
|
||||
pid: 0
|
||||
},
|
||||
{
|
||||
name: 'Node 3',
|
||||
id: 't3',
|
||||
pid: 0
|
||||
}
|
||||
])
|
||||
wrapper = mount(VueTreeList, {propsData: {model: new Tree([])}})
|
||||
wrapper.setProps({model: tree})
|
||||
})
|
||||
|
||||
it('drag before', done => {
|
||||
const $tree2 = wrapper.find('#t2 .vtl-node-main')
|
||||
const $tree1Up = wrapper.find('#t1 .vtl-up')
|
||||
$tree2.trigger('dragstart', { dataTransfer: { setData: () => {} }})
|
||||
$tree1Up.trigger('drop')
|
||||
Vue.nextTick(() => {
|
||||
expect(wrapper.find('.vtl-node').attributes('id')).toBe('t2')
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
it('drag after', done => {
|
||||
const $tree3 = wrapper.find('#t3 .vtl-node-main')
|
||||
const $tree1Bottom = wrapper.find('#t1 .vtl-bottom')
|
||||
$tree3.trigger('dragstart', { dataTransfer: { setData: () => {} }})
|
||||
$tree1Bottom.trigger('drop')
|
||||
Vue.nextTick(() => {
|
||||
expect(wrapper.findAll('.vtl-tree-node').at(2).attributes('id')).toBe('t3')
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
it('drag into', done => {
|
||||
const $tree3 = wrapper.find('#t3 .vtl-node-main')
|
||||
const $tree1 = wrapper.find('#t1 .vtl-node-main')
|
||||
$tree3.trigger('dragstart', { dataTransfer: { setData: () => {} }})
|
||||
$tree1.trigger('drop')
|
||||
Vue.nextTick(() => {
|
||||
expect(wrapper.find('#t1 + .vtl-tree-margin .vtl-node').attributes('id')).toBe('t3')
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
it('cannot drag ancestor into child', done => {
|
||||
const snapshot = wrapper.html()
|
||||
const $tree1 = wrapper.find('#t1 .vtl-node-main')
|
||||
const $tree1Child = wrapper.find('#t12 .vtl-node-main')
|
||||
$tree1.trigger('dragstart', { dataTransfer: { setData: () => {} }})
|
||||
$tree1Child.trigger('drop')
|
||||
Vue.nextTick(() => {
|
||||
expect(wrapper.html()).toBe(snapshot)
|
||||
done()
|
||||
})
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user