import React from "react"; import { dateButton, gridcell } from "@/test/elements"; import { render, screen } from "@/test/render"; import { user } from "@/test/user"; import { CustomSingle } from "./CustomSingle"; const today = new Date(); beforeEach(() => { render(); }); describe("when a day is clicked", () => { beforeEach(async () => { await user.click(dateButton(today)); }); test("the gridcell should appear as selected", () => { expect(gridcell(today, true)).toHaveAttribute("aria-selected", "true"); }); test("should update the footer", () => { expect( screen.getByText("You selected " + today.toDateString()) ).toBeInTheDocument(); }); describe("when clicking the day again", () => { beforeEach(async () => { await user.click(dateButton(today)); }); test("should not appear as selected", () => { expect(gridcell(today, true)).not.toHaveAttribute( "aria-selected", "true" ); }); test("should update the footer", () => { expect( screen.queryByText("You selected Thu Nov 25 2021") ).not.toBeInTheDocument(); }); }); });