From da5ac224cab28f3aeb7c96c0675716eca481b21c Mon Sep 17 00:00:00 2001 From: Peng Xiao Date: Tue, 2 Jan 2024 03:28:38 +0000 Subject: [PATCH] test(core): select monthpicker issue when crossing different years (#5478) --- tests/kit/utils/filter.ts | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/tests/kit/utils/filter.ts b/tests/kit/utils/filter.ts index e4809fd62..5e7396646 100644 --- a/tests/kit/utils/filter.ts +++ b/tests/kit/utils/filter.ts @@ -138,36 +138,21 @@ export const selectDateFromDatePicker = async (page: Page, date: Date) => { await datePickerPopup.waitFor({ state: 'hidden' }); }; -const checkIsLastYear = (date: Date): boolean => { - const targetYear = date.getFullYear(); - const currentYear = new Date().getFullYear(); - const lastYear = currentYear - 1; - return targetYear === lastYear; -}; - -const checkIsNextYear = (date: Date): boolean => { - const targetYear = date.getFullYear(); - const currentYear = new Date().getFullYear(); - const nextYear = currentYear + 1; - return targetYear === nextYear; -}; - export const selectMonthFromMonthPicker = async (page: Page, date: Date) => { const month = date.toLocaleString('en-US', { month: 'long' }); - const year = date.getFullYear().toString(); + const year = date.getFullYear(); // Open the month picker popup await clickMonthPicker(page); const selectMonth = async (): Promise => { - if (checkIsLastYear(date)) { - const lastYearButton = page.locator( - '[data-testid="month-picker-prev-button"]' - ); - await lastYearButton.click(); - } else if (checkIsNextYear(date)) { - const nextYearButton = page.locator( - '[data-testid="month-picker-next-button"]' - ); - await nextYearButton.click(); + const selectedYear = +(await page + .getByTestId('month-picker-current-year') + .innerText()); + if (selectedYear > year) { + page.locator('[data-testid="month-picker-prev-button"]').click(); + return await selectMonth(); + } else if (selectedYear < year) { + page.locator('[data-testid="month-picker-next-button"]').click(); + return await selectMonth(); } // Click on the day cell const monthCell = page.locator(`[aria-label="Choose ${month} ${year}"]`);