File size: 1,635 Bytes
cf86710 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import React from "react";
import { dateButton, gridcell } from "@/test/elements";
import { render } from "@/test/render";
import { setTestTime } from "@/test/setTestTime";
import { user } from "@/test/user";
import { CustomWeek } from "./CustomWeek";
const today = new Date(2021, 10, 25);
setTestTime(today);
beforeEach(() => {
render(<CustomWeek />);
});
describe("when a day is clicked", () => {
beforeEach(async () => {
await user.click(dateButton(today));
});
test("the whole week should appear selected", () => {
const week = [
gridcell(new Date(2021, 10, 21), true),
gridcell(new Date(2021, 10, 22), true),
gridcell(new Date(2021, 10, 23), true),
gridcell(new Date(2021, 10, 24), true),
gridcell(new Date(2021, 10, 25), true),
gridcell(new Date(2021, 10, 26), true),
gridcell(new Date(2021, 10, 27), true),
];
week.forEach((day) => {
expect(day).toHaveAttribute("aria-selected", "true");
});
});
describe("when clicking the day again", () => {
beforeEach(async () => {
await user.click(dateButton(today));
});
test("the whole week should not be selected", () => {
const week = [
dateButton(new Date(2021, 10, 21)),
dateButton(new Date(2021, 10, 22)),
dateButton(new Date(2021, 10, 23)),
dateButton(new Date(2021, 10, 24)),
dateButton(new Date(2021, 10, 25)),
dateButton(new Date(2021, 10, 26)),
dateButton(new Date(2021, 10, 27)),
];
week.forEach((day) => {
expect(day).not.toHaveAttribute("aria-selected", "true");
});
});
});
});
|