button.spec.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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('round', () => {
  59. vm = createTest(Button, {
  60. round: true
  61. }, true);
  62. let buttonElm = vm.$el;
  63. expect(buttonElm.classList.contains('is-round')).to.be.true;
  64. });
  65. it('circle', () => {
  66. vm = createTest(Button, {
  67. circle: true
  68. }, true);
  69. let buttonElm = vm.$el;
  70. expect(buttonElm.classList.contains('is-circle')).to.be.true;
  71. });
  72. it('click', done => {
  73. let result;
  74. vm = createVue({
  75. template: `
  76. <el-button @click="handleClick"></el-button>
  77. `,
  78. methods: {
  79. handleClick(evt) {
  80. result = evt;
  81. }
  82. }
  83. }, true);
  84. vm.$el.click();
  85. setTimeout(_ => {
  86. expect(result).to.exist;
  87. done();
  88. }, 20);
  89. });
  90. it('click inside', done => {
  91. let result;
  92. vm = createVue({
  93. template: `
  94. <el-button @click="handleClick"><span class="inner-slot"></span></el-button>
  95. `,
  96. methods: {
  97. handleClick(evt) {
  98. result = evt;
  99. }
  100. }
  101. }, true);
  102. vm.$el.querySelector('.inner-slot').click();
  103. setTimeout(_ => {
  104. expect(result).to.exist;
  105. done();
  106. }, 20);
  107. });
  108. it('loading implies disabled', done => {
  109. let result;
  110. vm = createVue({
  111. template: `
  112. <el-button loading @click="handleClick"><span class="inner-slot"></span></el-button>
  113. `,
  114. methods: {
  115. handleClick(evt) {
  116. result = evt;
  117. }
  118. }
  119. }, true);
  120. vm.$el.querySelector('.inner-slot').click();
  121. setTimeout(_ => {
  122. expect(result).to.not.exist;
  123. done();
  124. }, 20);
  125. });
  126. });