calendar.spec.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { createVue, destroyVM, waitImmediate } from '../util';
  2. describe('Calendar', () => {
  3. let vm;
  4. afterEach(() => {
  5. destroyVM(vm);
  6. });
  7. it('create', async() => {
  8. vm = createVue({
  9. template: `
  10. <el-calendar v-model="value"></el-calendar>
  11. `,
  12. data() {
  13. return {
  14. value: new Date('2019-04-01')
  15. };
  16. }
  17. }, true);
  18. const titleEl = vm.$el.querySelector('.el-calendar__title');
  19. expect(/2019.*4/.test(titleEl.innerText)).to.be.true;
  20. expect(vm.$el.querySelectorAll('thead th').length).to.equal(7);
  21. const rows = vm.$el.querySelectorAll('.el-calendar-table__row');
  22. expect(rows.length).to.equal(6);
  23. rows[5].firstElementChild.click();
  24. await waitImmediate();
  25. expect(/2019.*5/.test(titleEl.innerText)).to.be.true;
  26. const value = vm.value;
  27. expect(value.getFullYear()).to.be.equal(2019);
  28. expect(value.getMonth()).to.be.equal(4);
  29. expect(vm.$el.querySelector('.is-selected span').innerText).to.be.equal('6');
  30. });
  31. it('range', () => {
  32. vm = createVue({
  33. template: `
  34. <el-calendar :range="['2019-03-04', '2019-03-24']"></el-calendar>
  35. `
  36. }, true);
  37. const titleEl = vm.$el.querySelector('.el-calendar__title');
  38. expect(/2019.*3/.test(titleEl.innerText)).to.be.true;
  39. const rows = vm.$el.querySelectorAll('.el-calendar-table__row');
  40. expect(rows.length).to.equal(3);
  41. expect(vm.$el.querySelector('.el-calendar__button-group')).to.be.a('null');
  42. });
  43. it('range tow monthes', async() => {
  44. vm = createVue({
  45. template: `
  46. <el-calendar :range="['2019-04-15', '2019-05-19']"></el-calendar>
  47. `
  48. }, true);
  49. const titleEl = vm.$el.querySelector('.el-calendar__title');
  50. expect(/2019.*4/.test(titleEl.innerText)).to.be.true;
  51. const dateTables = vm.$el.querySelectorAll('.el-calendar-table.is-range');
  52. expect(dateTables.length).to.be.equal(2);
  53. const rows = vm.$el.querySelectorAll('.el-calendar-table__row');
  54. expect(rows.length).to.equal(5);
  55. const cell = rows[rows.length - 1].firstElementChild;
  56. cell.click();
  57. await waitImmediate();
  58. expect(/2019.*5/.test(titleEl.innerText)).to.be.true;
  59. expect(cell.classList.contains('is-selected')).to.be.true;
  60. });
  61. });