import { createVue, triggerEvent, destroyVM } from '../util';
describe('Dropdown', () => {
let vm;
afterEach(() => {
destroyVM(vm);
});
it('create', done => {
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;
destroyVM(vm);
done();
}, 300);
}, 400);
});
it('menu click', done => {
vm = createVue({
template: `
下拉菜单
黄金糕
狮子头
螺蛳粉
双皮奶
蚵仔煎
`
}, true);
let dropdown = vm.$refs.dropdown;
let dropdownElm = dropdown.$el;
let triggerElm = dropdownElm.children[0];
let callback = sinon.spy();
dropdown.$on('command', callback);
triggerEvent(triggerElm, 'mouseenter');
setTimeout(_ => {
vm.$refs.commandC.$el.click();
setTimeout(_ => {
expect(dropdown.visible).to.not.true;
expect(callback.calledWith('c')).to.be.true;
destroyVM(vm);
done();
}, 300);
}, 300);
});
it('trigger', done => {
vm = createVue({
template: `
下拉菜单trigger click
黄金糕
狮子头
螺蛳粉
双皮奶
蚵仔煎
`
}, 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;
triggerElm.click();
dropdown.$nextTick(_ => {
expect(dropdown.visible).to.be.true;
destroyVM(vm);
done();
});
});
});
it('split button', done => {
vm = createVue({
template: `
更多菜单
黄金糕
狮子头
螺蛳粉
双皮奶
蚵仔煎
`
}, true);
let dropdown = vm.$refs.dropdown;
let dropdownElm = dropdown.$el;
let triggerElm = dropdownElm.querySelector('.el-dropdown__caret-button');
var callback = sinon.spy();
dropdown.$on('click', callback);
dropdownElm.querySelector('.el-button').click();
setTimeout(_ => {
expect(callback.called).to.be.true;
}, 300);
triggerEvent(triggerElm, 'mouseenter');
setTimeout(_ => {
expect(dropdown.visible).to.be.true;
triggerEvent(triggerElm, 'mouseleave');
setTimeout(_ => {
expect(dropdown.visible).to.not.true;
destroyVM(vm);
done();
}, 300);
}, 300);
});
it('hide on click', done => {
vm = createVue({
template: `
下拉菜单
黄金糕
狮子头
螺蛳粉
双皮奶
蚵仔煎
`
}, true);
let dropdown = vm.$refs.dropdown;
let dropdownElm = dropdown.$el;
let triggerElm = dropdownElm.children[0];
let callback = sinon.spy();
dropdown.$on('command', callback);
triggerEvent(triggerElm, 'mouseenter');
setTimeout(_ => {
vm.$refs.commandC.$el.click();
setTimeout(_ => {
expect(dropdown.visible).to.true;
expect(callback.calledWith('c')).to.be.true;
done();
}, 300);
}, 300);
});
});