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' });
};
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<void> => {
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}"]`);