import * as React from "react"; import { screen } from "@testing-library/react"; import { PaginationDisplay } from "./PaginationDisplay"; import { renderWithContext } from "./paginationTestsHelpers"; const props = { setPage: () => null, page: 1, endlessPagination: false, slug: "people/author/", totalPages: 10, variant: "numeric", }; describe("PaginationDisplay", () => { test("renders visibly into the document -- numeric", () => { renderWithContext(, { ...props }); // Returns <1 2 3 4 5 ... 10> expect(screen.getAllByRole("link")[0]).toHaveTextContent("1"); expect(screen.getAllByRole("link")[1]).toHaveTextContent("2"); expect(screen.getAllByRole("link")[2]).toHaveTextContent("3"); expect(screen.getAllByRole("link")[3]).toHaveTextContent("4"); expect(screen.getAllByRole("link")[4]).toHaveTextContent("5"); expect(screen.getAllByRole("link")[5]).toHaveAccessibleName("page 7"); expect(screen.getAllByRole("link")[6]).toHaveTextContent("10"); }); test("renders visibly into the document -- descriptive", () => { renderWithContext(, { ...props, variant: "descriptive", }); expect(screen.getByText("1 of 10 pages")).toBeVisible(); }); test("renders visibly into the document -- compact", () => { renderWithContext(, { ...props, variant: "compact", }); expect(screen.getByText("1/10")).toBeVisible(); }); });