input-number.spec.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. import { createVue, triggerEvent } from '../util';
  2. describe('InputNumber', () => {
  3. it('create', () => {
  4. const vm = createVue({
  5. template: `
  6. <el-input-number v-model="value">
  7. </el-input-number>
  8. `,
  9. data() {
  10. return {
  11. value: 1
  12. };
  13. }
  14. }, true);
  15. let input = vm.$el.querySelector('input');
  16. expect(vm.value).to.be.equal(1);
  17. expect(input.value).to.be.equal('1');
  18. });
  19. it('decrease', done => {
  20. const vm = createVue({
  21. template: `
  22. <el-input-number v-model="value">
  23. </el-input-number>
  24. `,
  25. data() {
  26. return {
  27. value: 5
  28. };
  29. }
  30. }, true);
  31. let input = vm.$el.querySelector('input');
  32. let btnDecrease = vm.$el.querySelector('.el-input-number__decrease');
  33. for (let i = 0; i < 3; i++) {
  34. triggerEvent(btnDecrease, 'mousedown');
  35. triggerEvent(document, 'mouseup');
  36. }
  37. triggerEvent(btnDecrease, 'mouseenter');
  38. setTimeout(_ => {
  39. expect(vm.$el.querySelector('.el-input.is-active')).to.exist;
  40. expect(vm.value).to.be.equal(2);
  41. expect(input.value).to.be.equal('2');
  42. triggerEvent(btnDecrease, 'mouseleave');
  43. vm.$nextTick(_ => {
  44. expect(vm.$el.querySelector('.el-input.is-active')).to.not.exist;
  45. done();
  46. });
  47. }, 100);
  48. });
  49. it('increase', done => {
  50. const vm = createVue({
  51. template: `
  52. <el-input-number v-model="value">
  53. </el-input-number>
  54. `,
  55. data() {
  56. return {
  57. value: 1.5
  58. };
  59. }
  60. }, true);
  61. let input = vm.$el.querySelector('input');
  62. let btnIncrease = vm.$el.querySelector('.el-input-number__increase');
  63. for (let i = 0; i < 3; i++) {
  64. triggerEvent(btnIncrease, 'mousedown');
  65. triggerEvent(document, 'mouseup');
  66. }
  67. setTimeout(_ => {
  68. expect(vm.value).to.be.equal(4.5);
  69. expect(input.value).to.be.equal('4.5');
  70. done();
  71. }, 100);
  72. });
  73. it('disabled', done => {
  74. const vm = createVue({
  75. template: `
  76. <el-input-number v-model="value" disabled>
  77. </el-input-number>
  78. `,
  79. data() {
  80. return {
  81. value: 2
  82. };
  83. }
  84. }, true);
  85. let input = vm.$el.querySelector('input');
  86. let btnDecrease = vm.$el.querySelector('.el-input-number__decrease');
  87. let btnIncrease = vm.$el.querySelector('.el-input-number__increase');
  88. triggerEvent(btnDecrease, 'mousedown');
  89. triggerEvent(document, 'mouseup');
  90. for (let i = 0; i < 3; i++) {
  91. triggerEvent(btnIncrease, 'mousedown');
  92. triggerEvent(document, 'mouseup');
  93. }
  94. setTimeout(_ => {
  95. expect(vm.value).to.be.equal(2);
  96. expect(input.value).to.be.equal('2');
  97. done();
  98. }, 100);
  99. });
  100. it('step', done => {
  101. const vm = createVue({
  102. template: `
  103. <el-input-number v-model="value" :step="3.2">
  104. </el-input-number>
  105. `,
  106. data() {
  107. return {
  108. value: 5
  109. };
  110. }
  111. }, true);
  112. let input = vm.$el.querySelector('input');
  113. let btnIncrease = vm.$el.querySelector('.el-input-number__increase');
  114. let btnDecrease = vm.$el.querySelector('.el-input-number__decrease');
  115. for (let i = 0; i < 2; i++) {
  116. triggerEvent(btnIncrease, 'mousedown');
  117. triggerEvent(document, 'mouseup');
  118. }
  119. setTimeout(_ => {
  120. expect(vm.value).to.be.equal(11.4);
  121. expect(input.value).to.be.equal('11.4');
  122. triggerEvent(btnDecrease, 'mousedown');
  123. triggerEvent(document, 'mouseup');
  124. setTimeout(_ => {
  125. expect(vm.value).to.be.equal(8.2);
  126. expect(input.value).to.be.equal('8.2');
  127. done();
  128. }, 100);
  129. }, 100);
  130. });
  131. it('min', done => {
  132. const vm = createVue({
  133. template: `
  134. <el-input-number v-model="value" :min="6">
  135. </el-input-number>
  136. `,
  137. data() {
  138. return {
  139. value: 9
  140. };
  141. }
  142. }, true);
  143. const vm2 = createVue({
  144. template: `
  145. <el-input-number v-model="value" :min="6">
  146. </el-input-number>
  147. `,
  148. data() {
  149. return {
  150. value: 3
  151. };
  152. }
  153. }, true);
  154. expect(vm2.value === 6);
  155. expect(vm2.$el.querySelector('input').value).to.be.equal('6');
  156. let input = vm.$el.querySelector('input');
  157. let btnDecrease = vm.$el.querySelector('.el-input-number__decrease');
  158. for (let i = 0; i < 5; i++) {
  159. triggerEvent(btnDecrease, 'mousedown');
  160. triggerEvent(document, 'mouseup');
  161. }
  162. setTimeout(_ => {
  163. expect(vm.value).to.be.equal(6);
  164. expect(input.value).to.be.equal('6');
  165. done();
  166. }, 100);
  167. });
  168. it('max', done => {
  169. const vm = createVue({
  170. template: `
  171. <el-input-number v-model="value" :max="8">
  172. </el-input-number>
  173. `,
  174. data() {
  175. return {
  176. value: 5
  177. };
  178. }
  179. }, true);
  180. const vm2 = createVue({
  181. template: `
  182. <el-input-number v-model="value" :max="8">
  183. </el-input-number>
  184. `,
  185. data() {
  186. return {
  187. value: 100
  188. };
  189. }
  190. }, true);
  191. expect(vm2.value === 8);
  192. expect(vm2.$el.querySelector('input').value).to.be.equal('8');
  193. let input = vm.$el.querySelector('input');
  194. let btnIncrease = vm.$el.querySelector('.el-input-number__increase');
  195. for (let i = 0; i < 5; i++) {
  196. triggerEvent(btnIncrease, 'mousedown');
  197. triggerEvent(document, 'mouseup');
  198. }
  199. setTimeout(_ => {
  200. expect(vm.value).to.be.equal(8);
  201. expect(input.value).to.be.equal('8');
  202. done();
  203. }, 100);
  204. });
  205. });