time-select.spec.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import { createTest, createVue } from '../util';
  2. import TimeSelect from 'packages/time-select';
  3. import Vue from 'vue';
  4. describe('TimeSelect', () => {
  5. it('should render correct contents', done => {
  6. const vm = createTest(TimeSelect, {
  7. pickerOptions: {
  8. start: '08:30',
  9. step: '00:15',
  10. end: '18:30'
  11. },
  12. placeholder: 'test'
  13. }, true);
  14. const input = vm.$el.querySelector('input');
  15. input.blur();
  16. input.focus();
  17. input.blur();
  18. Vue.nextTick(_ => {
  19. expect(vm.picker.start).to.equal('08:30');
  20. expect(vm.picker.end).to.equal('18:30');
  21. expect(vm.picker.step).to.equal('00:15');
  22. expect(vm.$el.querySelector('input').getAttribute('placeholder')).to.equal('test');
  23. done();
  24. });
  25. });
  26. it('select time', done => {
  27. const vm = createVue({
  28. template: `
  29. <div>
  30. <el-time-select ref="compo" v-model="value">
  31. </el-time-select>
  32. </div>
  33. `,
  34. data() {
  35. return {
  36. value: ''
  37. };
  38. }
  39. }, true);
  40. const input = vm.$el.querySelector('input');
  41. input.blur();
  42. input.focus();
  43. input.blur();
  44. Vue.nextTick(_ => {
  45. const items = vm.$refs.compo.picker.$el.querySelectorAll('.time-select-item');
  46. const target = items[4];
  47. const time = target.textContent;
  48. target.click();
  49. Vue.nextTick(_ => {
  50. expect(vm.value).to.equal(time);
  51. done();
  52. });
  53. });
  54. });
  55. it('set default value', done => {
  56. const vm = createTest(TimeSelect, {
  57. value: '14:30'
  58. }, true);
  59. const input = vm.$el.querySelector('input');
  60. input.blur();
  61. input.focus();
  62. input.blur();
  63. setTimeout(_ => {
  64. expect(input.value).to.equal('14:30');
  65. expect(vm.picker.$el.querySelector('.selected')).to.be.ok;
  66. expect(vm.picker.$el.querySelector('.selected').textContent).to.equal('14:30');
  67. done();
  68. }, 500);
  69. });
  70. });