test(core): select monthpicker issue when crossing different years (#5478)
This commit is contained in:
@@ -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}"]`);
|
||||||
|
|||||||
Reference in New Issue
Block a user