import { render, screen, fireEvent } from "@testing-library/react";
import { Box } from "../box";
import { Text } from "../text";
import { Accordion } from "./index";
import type { AccordionItemsProps } from "./index";
export const mockAccordionItem: AccordionItemsProps = [
{
value: "header_1",
header: Header 1,
body: (
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua. Ut enim ad minim veniam
),
},
{
value: "header_2",
header: Header 2,
body: (
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
),
},
{
value: "header_3",
header: Header 3,
body: (
Lorem ipsum dolor sit amet
),
},
];
describe("Accordion", () => {
it("should display all the headers", async () => {
render();
expect(screen.getByText("Header 1")).toBeInTheDocument();
expect(screen.getByText("Header 2")).toBeInTheDocument();
expect(screen.getByText("Header 3")).toBeInTheDocument();
});
it("should display and hide the content when header is clicked", () => {
render();
const header = screen.getByText("Header 3");
const anotherHeader = screen.getByText("Header 2");
fireEvent.click(header);
expect(screen.getByText("Lorem ipsum dolor sit amet")).toBeInTheDocument();
fireEvent.click(anotherHeader);
expect(screen.queryByText("Lorem ipsum dolor sit amet")).not.toBeInTheDocument();
expect(
screen.getByText("Lorem ipsum dolor sit amet, consectetur adipiscing elit,")
).toBeInTheDocument();
});
});