Skip to content

Commit bb77088

Browse files
committed
test: add coverage for dropdown keyboard accessibility
1 parent ea33050 commit bb77088

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

src/test/month_dropdown_test.test.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,28 @@ describe("MonthDropdown", () => {
192192
dropdownDateFormat = getMonthDropdown({ locale: "ru" });
193193
expect(dropdownDateFormat.textContent).toContain("декабрь");
194194
});
195+
196+
it("calls the supplied onChange function when a month is selected using arrows and enter key", () => {
197+
const monthReadView = safeQuerySelector(
198+
monthDropdown,
199+
".react-datepicker__month-read-view",
200+
);
201+
fireEvent.click(monthReadView);
202+
203+
const monthOptions = safeQuerySelectorAll(
204+
monthDropdown,
205+
".react-datepicker__month-option",
206+
);
207+
208+
const monthOption = monthOptions[3]!;
209+
fireEvent.keyDown(monthOption, { key: "ArrowDown" });
210+
211+
const nextMonthOption = monthOptions[4];
212+
expect(document.activeElement).toEqual(nextMonthOption);
213+
214+
fireEvent.keyDown(document.activeElement!, { key: "Enter" });
215+
expect(handleChangeResult).toEqual(4);
216+
})
195217
});
196218

197219
describe("select mode", () => {

src/test/year_dropdown_test.test.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,28 @@ describe("YearDropdown", () => {
116116
fireEvent.click(yearOption);
117117
expect(lastOnChangeValue).toEqual(2014);
118118
});
119+
120+
it("calls the supplied onChange function when a year is selected using arrows and enter key", () => {
121+
const yearReadView = safeQuerySelector(
122+
yearDropdown,
123+
".react-datepicker__year-read-view",
124+
);
125+
fireEvent.click(yearReadView);
126+
const minYearOptionsLen = 7;
127+
const yearOptions = safeQuerySelectorAll(
128+
yearDropdown,
129+
".react-datepicker__year-option",
130+
minYearOptionsLen,
131+
);
132+
const yearOption = yearOptions[6]!;
133+
fireEvent.keyDown(yearOption, { key: "ArrowUp" });
134+
135+
const previousYearOption = yearOptions[5]!;
136+
expect(document.activeElement).toBe(previousYearOption);
137+
138+
fireEvent.keyDown(document.activeElement!, { key: "Enter" });
139+
expect(lastOnChangeValue).toEqual(2016);
140+
});
119141
});
120142

121143
describe("select mode", () => {

0 commit comments

Comments
 (0)