test(core): select monthpicker issue when crossing different years (#5478)

This commit is contained in:
Peng Xiao
2024-01-02 03:28:38 +00:00
parent 10aeefe36d
commit da5ac224ca

View File

@@ -138,36 +138,21 @@ export const selectDateFromDatePicker = async (page: Page, date: Date) => {
await datePickerPopup.waitFor({ state: 'hidden' }); 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) => { export const selectMonthFromMonthPicker = async (page: Page, date: Date) => {
const month = date.toLocaleString('en-US', { month: 'long' }); const month = date.toLocaleString('en-US', { month: 'long' });
const year = date.getFullYear().toString(); const year = date.getFullYear();
// Open the month picker popup // Open the month picker popup
await clickMonthPicker(page); await clickMonthPicker(page);
const selectMonth = async (): Promise<void> => { const selectMonth = async (): Promise<void> => {
if (checkIsLastYear(date)) { const selectedYear = +(await page
const lastYearButton = page.locator( .getByTestId('month-picker-current-year')
'[data-testid="month-picker-prev-button"]' .innerText());
); if (selectedYear > year) {
await lastYearButton.click(); page.locator('[data-testid="month-picker-prev-button"]').click();
} else if (checkIsNextYear(date)) { return await selectMonth();
const nextYearButton = page.locator( } else if (selectedYear < year) {
'[data-testid="month-picker-next-button"]' page.locator('[data-testid="month-picker-next-button"]').click();
); return await selectMonth();
await nextYearButton.click();
} }
// Click on the day cell // Click on the day cell
const monthCell = page.locator(`[aria-label="Choose ${month} ${year}"]`); const monthCell = page.locator(`[aria-label="Choose ${month} ${year}"]`);