slider.spec.js 3.1 KB

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