button.spec.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { createTest, createVue, destroyVM } from '../util';
  2. import Button from 'packages/button';
  3. describe('Button', () => {
  4. let vm;
  5. afterEach(() => {
  6. destroyVM(vm);
  7. });
  8. it('create', () => {
  9. vm = createTest(Button, {
  10. type: 'primary'
  11. }, true);
  12. let buttonElm = vm.$el;
  13. expect(buttonElm.classList.contains('el-button--primary')).to.be.true;
  14. });
  15. it('icon', () => {
  16. vm = createTest(Button, {
  17. icon: 'el-icon-search'
  18. }, true);
  19. let buttonElm = vm.$el;
  20. expect(buttonElm.querySelector('.el-icon-search')).to.be.ok;
  21. });
  22. it('nativeType', () => {
  23. vm = createTest(Button, {
  24. nativeType: 'submit'
  25. }, true);
  26. let buttonElm = vm.$el;
  27. expect(buttonElm.getAttribute('type')).to.be.equal('submit');
  28. });
  29. it('loading', () => {
  30. vm = createTest(Button, {
  31. loading: true
  32. }, true);
  33. let buttonElm = vm.$el;
  34. expect(buttonElm.classList.contains('is-loading')).to.be.true;
  35. expect(buttonElm.querySelector('.el-icon-loading')).to.be.ok;
  36. });
  37. it('disabled', () => {
  38. vm = createTest(Button, {
  39. disabled: true
  40. }, true);
  41. let buttonElm = vm.$el;
  42. expect(buttonElm.classList.contains('is-disabled')).to.be.true;
  43. });
  44. it('size', () => {
  45. vm = createTest(Button, {
  46. size: 'medium'
  47. }, true);
  48. let buttonElm = vm.$el;
  49. expect(buttonElm.classList.contains('el-button--medium')).to.be.true;
  50. });
  51. it('plain', () => {
  52. vm = createTest(Button, {
  53. plain: true
  54. }, true);
  55. let buttonElm = vm.$el;
  56. expect(buttonElm.classList.contains('is-plain')).to.be.true;
  57. });
  58. it('click', done => {
  59. let result;
  60. vm = createVue({
  61. template: `
  62. <el-button @click="handleClick"></el-button>
  63. `,
  64. methods: {
  65. handleClick(evt) {
  66. result = evt;
  67. }
  68. }
  69. }, true);
  70. vm.$el.click();
  71. setTimeout(_ => {
  72. expect(result).to.exist;
  73. done();
  74. }, 20);
  75. });
  76. });