slider.spec.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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', () => {
  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. setTimeout(() => {
  56. expect(popup.style.display).to.equal('none');
  57. }, 350);
  58. });
  59. });
  60. it('drag', done => {
  61. const vm = createVue({
  62. template: `
  63. <div>
  64. <el-slider v-model="value"></el-slider>
  65. </div>
  66. `,
  67. data() {
  68. return {
  69. value: 0
  70. };
  71. }
  72. }, true);
  73. const slider = vm.$children[0];
  74. setTimeout(() => {
  75. slider.onButtonDown({ clientX: 0 });
  76. slider.onDragging({ clientX: 100 });
  77. slider.onDragEnd();
  78. expect(vm.value > 0).to.true;
  79. done();
  80. }, 150);
  81. });
  82. it('click', done => {
  83. const vm = createVue({
  84. template: `
  85. <div>
  86. <el-slider v-model="value"></el-slider>
  87. </div>
  88. `,
  89. data() {
  90. return {
  91. value: 0
  92. };
  93. }
  94. }, true);
  95. const slider = vm.$children[0];
  96. setTimeout(() => {
  97. slider.onSliderClick({ clientX: 100 });
  98. setTimeout(() => {
  99. expect(vm.value > 0).to.true;
  100. done();
  101. }, 150);
  102. }, 150);
  103. });
  104. it('show input', done => {
  105. const vm = createVue({
  106. template: `
  107. <div>
  108. <el-slider v-model="value" show-input></el-slider>
  109. </div>
  110. `,
  111. data() {
  112. return {
  113. value: 0
  114. };
  115. }
  116. }, true);
  117. setTimeout(() => {
  118. triggerEvent(vm.$el.querySelector('.el-input-number'), 'keyup');
  119. const inputNumber = vm.$el.querySelector('.el-input-number').__vue__;
  120. inputNumber.currentValue = 40;
  121. setTimeout(() => {
  122. expect(vm.value).to.equal(40);
  123. done();
  124. }, 150);
  125. }, 150);
  126. });
  127. it('show stops', done => {
  128. const vm = createTest(Slider, {
  129. showStops: true,
  130. step: 10
  131. }, true);
  132. const stops = vm.$el.querySelectorAll('.el-slider__stop');
  133. expect(stops.length).to.equal(9);
  134. done();
  135. });
  136. });