input.spec.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import { createVue } from '../util';
  2. describe('Input', () => {
  3. it('create', () => {
  4. const vm = createVue({
  5. template: `
  6. <el-input
  7. minlength="3"
  8. maxlength="5"
  9. placeholder="请输入内容"
  10. value="input">
  11. </el-input>
  12. `
  13. }, true);
  14. let inputElm = vm.$el.querySelector('input');
  15. expect(inputElm.getAttribute('placeholder')).to.equal('请输入内容');
  16. expect(inputElm.value).to.equal('input');
  17. expect(inputElm.getAttribute('minlength')).to.equal('3');
  18. expect(inputElm.getAttribute('maxlength')).to.equal('5');
  19. });
  20. it('disabled', () => {
  21. const vm = createVue({
  22. template: `
  23. <el-input disabled>
  24. </el-input>
  25. `
  26. }, true);
  27. expect(vm.$el.querySelector('input').getAttribute('disabled')).to.ok;
  28. });
  29. it('icon', () => {
  30. const vm = createVue({
  31. template: `
  32. <el-input icon="time">
  33. </el-input>
  34. `
  35. }, true);
  36. expect(vm.$el.querySelector('.el-input__icon').classList.contains('el-icon-time')).to.true;
  37. });
  38. it('size', () => {
  39. const vm = createVue({
  40. template: `
  41. <el-input size="large">
  42. </el-input>
  43. `
  44. }, true);
  45. expect(vm.$el.classList.contains('el-input-large')).to.true;
  46. });
  47. it('type', () => {
  48. const vm = createVue({
  49. template: `
  50. <el-input type="textarea">
  51. </el-input>
  52. `
  53. }, true);
  54. expect(vm.$el.classList.contains('el-textarea')).to.true;
  55. });
  56. it('rows', () => {
  57. const vm = createVue({
  58. template: `
  59. <el-input type="textarea" :rows="3">
  60. </el-input>
  61. `
  62. }, true);
  63. expect(vm.$el.querySelector('.el-textarea__inner').getAttribute('rows')).to.be.equal('3');
  64. });
  65. it('autosize', done => {
  66. const vm = createVue({
  67. template: `
  68. <el-input
  69. type="textarea"
  70. autosize="{minRows: 3, maxRows: 5}"
  71. v-model="textareaValue"
  72. >
  73. </el-input>
  74. `,
  75. data() {
  76. return {
  77. textareaValue: 'sda\ndasd\nddasdsda\ndasd\nddasdsda\ndasd\nddasdsda\ndasd\nddasd'
  78. };
  79. }
  80. }, true).$children[0];
  81. var originHeight = vm.textareaStyle.height;
  82. expect(originHeight).to.be.not.equal('117px');
  83. vm.$parent.textareaValue = '';
  84. setTimeout(_ => {
  85. expect(vm.textareaStyle.height).to.be.not.equal('54px');
  86. done();
  87. }, 200);
  88. });
  89. });