button.spec.js 2.0 KB

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