From 531ffccda11bf67bc573ed1d273088a7d1e08069 Mon Sep 17 00:00:00 2001 From: Sun Yuu Date: Fri, 11 Nov 2022 22:42:48 +0800 Subject: [PATCH] fix(components): [calendar] fix range cross year bug (#10574) * fix(components): [calendar] (#5595) fix(components): [calendar] fix range cross year bug closed #5595 * test(components): [calendar] add test Co-authored-by: tolking --- .../calendar/__tests__/calendar.test.tsx | 21 +++++++++++++++++++ .../components/calendar/src/use-calendar.ts | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/components/calendar/__tests__/calendar.test.tsx b/packages/components/calendar/__tests__/calendar.test.tsx index a0528a3dca..5353862d20 100644 --- a/packages/components/calendar/__tests__/calendar.test.tsx +++ b/packages/components/calendar/__tests__/calendar.test.tsx @@ -203,6 +203,27 @@ describe('Calendar.vue', () => { expect(cell?.classList.contains('is-selected')).toBeTruthy() }) + it('range two years', async () => { + const wrapper = mount(() => ( + + )) + const titleEl = wrapper.find('.el-calendar__title') + expect(/2021.*December/.test(titleEl.element.innerHTML)).toBeTruthy() + const dateTables = wrapper.element.querySelectorAll( + '.el-calendar-table.is-range' + ) + expect(dateTables.length).toBe(2) + const rows = wrapper.element.querySelectorAll('.el-calendar-table__row') + expect(rows.length).toBe(4) + const cell = rows[rows.length - 1].firstElementChild as HTMLElement + cell.click() + + await nextTick() + + expect(/2022.*January/.test(titleEl.element.innerHTML)).toBeTruthy() + expect(cell?.classList.contains('is-selected')).toBeTruthy() + }) + it('slots', async () => { const wrapper = mount(() => (