import { render } from "@testing-library/react";
import React from "react";
import { setTime, newDate } from "../date_utils";
import { setupMockResizeObserver } from "./test_utils";
import DatePicker from "../index";
describe("DatePicker", () => {
let now: Date, excludeTimes: Date[];
beforeAll(() => {
setupMockResizeObserver();
});
beforeEach(() => {
now = newDate();
excludeTimes = [
setTime(now, { hour: 17, minute: 0 }),
setTime(now, { hour: 18, minute: 30 }),
setTime(now, { hour: 19, minute: 30 }),
setTime(now, { hour: 17, minute: 30 }),
];
});
it("should disable times specified in excludeTimes props", () => {
const { container: datePicker } = render(
,
);
const disabledTimeItems = datePicker.querySelectorAll(
".react-datepicker__time-list-item--disabled",
);
expect(disabledTimeItems.length).toBe(excludeTimes.length);
});
it("should add aria-disabled to all the excluded times", () => {
const { container: datePicker } = render(
,
);
const disabledTimeItems = datePicker.querySelectorAll(
".react-datepicker__time-list-item--disabled",
);
const allDisabledTimeItemsHaveAriaDisabled = Array.from(
disabledTimeItems,
).every((time) => time.getAttribute("aria-disabled") === "true");
expect(allDisabledTimeItemsHaveAriaDisabled).toBe(true);
});
});