element/test/unit/specs/button.spec.js

80 lines
1.9 KiB
Vue
Raw Normal View History

2016-10-28 09:29:18 +00:00
import { createTest, createVue, destroyVM } from '../util';
2016-10-19 16:37:57 +00:00
import Button from 'packages/button';
describe('Button', () => {
2016-11-03 02:14:36 +00:00
let vm;
afterEach(() => {
destroyVM(vm);
});
2016-10-19 16:37:57 +00:00
it('create', () => {
2016-11-03 02:14:36 +00:00
vm = createTest(Button, {
2016-10-19 16:37:57 +00:00
type: 'primary'
}, true);
let buttonElm = vm.$el;
2016-10-25 03:33:39 +00:00
expect(buttonElm.classList.contains('el-button--primary')).to.be.true;
2016-10-19 16:37:57 +00:00
});
it('icon', () => {
2016-11-03 02:14:36 +00:00
vm = createTest(Button, {
2016-10-19 16:37:57 +00:00
icon: 'search'
}, true);
let buttonElm = vm.$el;
expect(buttonElm.querySelector('.el-icon-search')).to.be.ok;
});
it('nativeType', () => {
2016-11-03 02:14:36 +00:00
vm = createTest(Button, {
2016-10-19 16:37:57 +00:00
nativeType: 'submit'
}, true);
let buttonElm = vm.$el;
expect(buttonElm.getAttribute('type')).to.be.equal('submit');
});
it('loading', () => {
2016-11-03 02:14:36 +00:00
vm = createTest(Button, {
2016-10-19 16:37:57 +00:00
loading: true
}, true);
let buttonElm = vm.$el;
expect(buttonElm.classList.contains('is-loading')).to.be.true;
expect(buttonElm.querySelector('.el-icon-loading')).to.be.ok;
});
it('disabled', () => {
2016-11-03 02:14:36 +00:00
vm = createTest(Button, {
2016-10-19 16:37:57 +00:00
disabled: true
}, true);
let buttonElm = vm.$el;
expect(buttonElm.classList.contains('is-disabled')).to.be.true;
});
it('size', () => {
2016-11-03 02:14:36 +00:00
vm = createTest(Button, {
2016-10-19 16:37:57 +00:00
size: 'large'
}, true);
let buttonElm = vm.$el;
2016-10-25 03:33:39 +00:00
expect(buttonElm.classList.contains('el-button--large')).to.be.true;
2016-10-19 16:37:57 +00:00
});
it('plain', () => {
2016-11-03 02:14:36 +00:00
vm = createTest(Button, {
2016-10-19 16:37:57 +00:00
plain: true
}, true);
let buttonElm = vm.$el;
expect(buttonElm.classList.contains('is-plain')).to.be.true;
2016-10-28 09:29:18 +00:00
});
it('click', done => {
let result;
2016-11-03 02:14:36 +00:00
vm = createVue({
2016-10-28 09:29:18 +00:00
template: `
<el-button @click="handleClick"></el-button>
`,
methods: {
handleClick(evt) {
result = evt;
}
}
}, true);
vm.$el.click();
setTimeout(_ => {
expect(result).to.exist;
done();
}, 20);
2016-10-19 16:37:57 +00:00
});
});