steps.spec.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. import { createVue, destroyVM } from '../util';
  2. import Vue from 'vue';
  3. describe('Steps', () => {
  4. let vm;
  5. afterEach(() => {
  6. destroyVM(vm);
  7. });
  8. it('create', () => {
  9. vm = createVue(`
  10. <el-steps>
  11. <el-step title="step1"></el-step>
  12. <el-step title="step2"></el-step>
  13. <el-step title="step3"></el-step>
  14. </el-steps>
  15. `);
  16. expect(vm.$el.querySelectorAll('.el-step')).to.length(3);
  17. });
  18. it('space', done => {
  19. vm = createVue(`
  20. <el-steps>
  21. <el-step title="step1"></el-step>
  22. <el-step title="step2"></el-step>
  23. <el-step title="step3"></el-step>
  24. </el-steps>
  25. `);
  26. const vm2 = createVue(`
  27. <el-steps :space="100">
  28. <el-step title="step1"></el-step>
  29. <el-step title="step2"></el-step>
  30. <el-step title="step3"></el-step>
  31. <el-step title="step4"></el-step>
  32. </el-steps>
  33. `);
  34. Vue.nextTick(_ => {
  35. expect(vm.$el.querySelector('.el-step')).have.deep.property('style.webkitFlexBasis').equal('50%');
  36. expect(vm2.$el.querySelector('.el-step')).have.deep.property('style.webkitFlexBasis').equal('100px');
  37. done();
  38. });
  39. });
  40. it('processStatus', done => {
  41. vm = createVue(`
  42. <el-steps :active="1" process-status="error">
  43. <el-step title="step1"></el-step>
  44. <el-step title="step2"></el-step>
  45. <el-step title="step3"></el-step>
  46. </el-steps>
  47. `);
  48. vm.$nextTick(_ => {
  49. expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(1);
  50. done();
  51. });
  52. });
  53. it('update processStatus', done => {
  54. vm = createVue({
  55. template: `
  56. <el-steps :active="1" :process-status="processStatus">
  57. <el-step title="abc"></el-step>
  58. <el-step title="abc2"></el-step>
  59. </el-steps>
  60. `,
  61. data() {
  62. return { processStatus: 'error' };
  63. }
  64. });
  65. vm.$nextTick(_ => {
  66. expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(1);
  67. vm.processStatus = 'process';
  68. vm.$nextTick(_ => {
  69. expect(vm.$el.querySelectorAll('.el-step__head.is-process')).to.length(1);
  70. done();
  71. });
  72. });
  73. });
  74. it('finishStatus', done => {
  75. vm = createVue(`
  76. <el-steps :active="1" finish-status="error">
  77. <el-step title="abc"></el-step>
  78. <el-step title="abc2"></el-step>
  79. </el-steps>
  80. `);
  81. vm.$nextTick(_ => {
  82. expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(1);
  83. done();
  84. });
  85. });
  86. it('active', done => {
  87. vm = createVue({
  88. template: `
  89. <el-steps :active="active" finish-status="error">
  90. <el-step title="abc"></el-step>
  91. <el-step title="abc2"></el-step>
  92. </el-steps>
  93. `,
  94. data() {
  95. return { active: 0 };
  96. }
  97. });
  98. vm.$nextTick(_ => {
  99. expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(0);
  100. vm.active = 2;
  101. vm.$nextTick(_ => {
  102. expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(2);
  103. done();
  104. });
  105. });
  106. });
  107. it('create vertical', () => {
  108. vm = createVue(`
  109. <el-steps direction="vertical">
  110. <el-step title="aaa"></el-step>
  111. <el-step title="bbb"></el-step>
  112. </el-steps>
  113. `);
  114. expect(vm.$el.querySelector('.is-vertical')).to.exist;
  115. });
  116. it('vertical:height', done => {
  117. vm = createVue(`
  118. <el-steps direction="vertical" :space="200">
  119. <el-step title="aaa"></el-step>
  120. <el-step title="bbb"></el-step>
  121. </el-steps>
  122. `);
  123. vm.$nextTick(_ => {
  124. expect(vm.$el.querySelector('.el-step')).have.deep.property('style.webkitFlexBasis').equal('200px');
  125. done();
  126. });
  127. });
  128. it('step:status=error', done => {
  129. vm = createVue(`
  130. <el-steps :active="2" process-status="process" finish-status="success" direction="horizontal">
  131. <el-step title="step1"></el-step>
  132. <el-step title="step2" status="error"></el-step>
  133. <el-step title="step3"></el-step>
  134. </el-steps>
  135. `);
  136. vm.$nextTick(_ => {
  137. const errorLine = vm.$el.querySelector('.el-step:nth-child(2) .el-step__line-inner');
  138. expect(errorLine.getBoundingClientRect().width).to.equal(0);
  139. const nextStep = vm.$el.querySelector('.el-step:nth-child(3) .el-step__head');
  140. expect(nextStep.classList.contains('is-wait')).to.equal(true);
  141. done();
  142. });
  143. });
  144. });