slider.spec.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. import { createTest, createVue, triggerEvent } from '../util';
  2. import Slider from 'packages/slider';
  3. describe('Slider', () => {
  4. it('create', () => {
  5. const vm = createTest(Slider);
  6. expect(vm.value).to.equal(0);
  7. });
  8. it('should not exceed min and max', done => {
  9. const vm = createVue({
  10. template: `
  11. <div>
  12. <el-slider v-model="value" :min="50">
  13. </el-slider>
  14. </div>
  15. `,
  16. data() {
  17. return {
  18. value: 50
  19. };
  20. }
  21. }, true);
  22. setTimeout(() => {
  23. vm.value = 40;
  24. vm.$nextTick(() => {
  25. expect(vm.value).to.equal(50);
  26. vm.value = 120;
  27. vm.$nextTick(() => {
  28. expect(vm.value).to.equal(100);
  29. done();
  30. });
  31. });
  32. }, 100);
  33. });
  34. it('show tooltip', () => {
  35. const vm = createVue({
  36. template: `
  37. <div>
  38. <el-slider v-model="value">
  39. </el-slider>
  40. </div>
  41. `,
  42. data() {
  43. return {
  44. value: 0
  45. };
  46. }
  47. }, true);
  48. const slider = vm.$children[0];
  49. slider.handleMouseEnter();
  50. expect(slider.$refs.tooltip.showPopper).to.true;
  51. slider.handleMouseLeave();
  52. expect(slider.$refs.tooltip.showPopper).to.false;
  53. });
  54. it('drag', done => {
  55. const vm = createVue({
  56. template: `
  57. <div>
  58. <el-slider v-model="value"></el-slider>
  59. </div>
  60. `,
  61. data() {
  62. return {
  63. value: 0
  64. };
  65. }
  66. }, true);
  67. const slider = vm.$children[0];
  68. setTimeout(() => {
  69. slider.onButtonDown({ clientX: 0 });
  70. slider.onDragging({ clientX: 100 });
  71. slider.onDragEnd();
  72. expect(vm.value > 0).to.true;
  73. done();
  74. }, 150);
  75. });
  76. it('click', done => {
  77. const vm = createVue({
  78. template: `
  79. <div>
  80. <el-slider v-model="value"></el-slider>
  81. </div>
  82. `,
  83. data() {
  84. return {
  85. value: 0
  86. };
  87. }
  88. }, true);
  89. const slider = vm.$children[0];
  90. setTimeout(() => {
  91. slider.onSliderClick({ clientX: 100 });
  92. setTimeout(() => {
  93. expect(vm.value > 0).to.true;
  94. done();
  95. }, 150);
  96. }, 150);
  97. });
  98. it('disabled', done => {
  99. const vm = createVue({
  100. template: `
  101. <div>
  102. <el-slider v-model="value" disabled></el-slider>
  103. </div>
  104. `,
  105. data() {
  106. return {
  107. value: 0
  108. };
  109. }
  110. }, true);
  111. const slider = vm.$children[0];
  112. setTimeout(() => {
  113. slider.onButtonDown({ clientX: 0 });
  114. slider.onDragging({ clientX: 100 });
  115. slider.onDragEnd();
  116. slider.onSliderClick({ clientX: 200 });
  117. expect(vm.value).to.equal(0);
  118. done();
  119. }, 100);
  120. });
  121. it('show input', done => {
  122. const vm = createVue({
  123. template: `
  124. <div>
  125. <el-slider v-model="value" show-input></el-slider>
  126. </div>
  127. `,
  128. data() {
  129. return {
  130. value: 0
  131. };
  132. }
  133. }, true);
  134. setTimeout(() => {
  135. triggerEvent(vm.$el.querySelector('.el-input-number'), 'keyup');
  136. const inputNumber = vm.$el.querySelector('.el-input-number').__vue__;
  137. inputNumber.currentValue = 40;
  138. setTimeout(() => {
  139. expect(vm.value).to.equal(40);
  140. done();
  141. }, 150);
  142. }, 150);
  143. });
  144. it('show stops', done => {
  145. const vm = createTest(Slider, {
  146. showStops: true,
  147. step: 10
  148. }, true);
  149. const stops = vm.$el.querySelectorAll('.el-slider__stop');
  150. expect(stops.length).to.equal(9);
  151. done();
  152. });
  153. });