import { createVue, triggerEvent } from '../util';
describe('Dropdown', () => {
it('create', done => {
const vm = createVue({
template: `
下拉菜单
黄金糕
狮子头
螺蛳粉
双皮奶
蚵仔煎
`
}, true);
let dropdown = vm.$refs.dropdown;
let dropdownElm = dropdown.$el;
let triggerElm = dropdownElm.children[0];
triggerEvent(triggerElm, 'mouseenter');
setTimeout(_ => {
expect(dropdown.visible).to.be.true;
triggerEvent(triggerElm, 'mouseleave');
setTimeout(_ => {
expect(dropdown.visible).to.not.true;
done();
}, 300);
}, 400);
});
it('menu click', done => {
const vm = createVue({
template: `
下拉菜单
`,
data() {
return {
clickedItem: ''
};
},
methods: {
handleClick(ev) {
this.clickedItem = ev.target.innerText;
}
}
}, true);
let dropdownElm = vm.$el;
let triggerElm = dropdownElm.children[0];
triggerEvent(triggerElm, 'mouseenter');
setTimeout(_ => {
let dropdownMenu = document.querySelector('.dropdown-test-menu-click');
dropdownMenu.children[1].click();
setTimeout(_ => {
expect(dropdownMenu.style.display).to.be.equal('none');
expect(vm.clickedItem).to.be.equal('狮子头');
done();
}, 600);
}, 400);
});
it('trigger', done => {
const vm = createVue({
template: `
下拉菜单trigger click
`,
data() {
return {
clickedItem: ''
};
},
methods: {
handleClick(ev) {
this.clickedItem = ev.target.innerText;
}
}
}, true);
let dropdownElm = vm.$el;
let dropdown = vm.$refs.dropdown;
let triggerElm = dropdownElm.children[0];
triggerEvent(triggerElm, 'mouseenter');
dropdown.$nextTick(_ => {
expect(dropdown.visible).to.not.true;
dropdownElm.children[0].click();
dropdown.$nextTick(_ => {
expect(dropdown.visible).to.be.true;
done();
});
});
});
it('split button', done => {
const vm = createVue({
template: `
更多菜单
黄金糕
狮子头
螺蛳粉
双皮奶
蚵仔煎
`,
data() {
return {
btnClicked: false
};
},
methods: {
handleClick(ev) {
this.btnClicked = true;
}
}
}, true);
let dropdown = vm.$refs.dropdown;
let dropdownElm = dropdown.$el;
let triggerElm = dropdownElm.querySelector('.el-dropdown__caret-button');
triggerEvent(triggerElm, 'mouseenter');
setTimeout(_ => {
expect(dropdown.visible).to.be.true;
triggerEvent(triggerElm, 'mouseleave');
setTimeout(_ => {
expect(dropdown.visible).to.not.true;
done();
}, 400);
}, 400);
});
});