/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ import React from "react"; import { render, screen } from "@testing-library/react"; import Pagination from "../Pagination"; test("renders a small number of pages at first page", async () => { const gotoPage = jest.fn(); const setCurrentPage = jest.fn(); render( , ); expect(screen.queryByText("Previous")).not.toBeInTheDocument(); expect(screen.getByText("Next")).toBeInTheDocument(); expect(screen.getByText("1")).toBeInTheDocument(); expect(screen.getByText("2")).toBeInTheDocument(); expect(screen.getByText("3")).toBeInTheDocument(); expect(screen.queryByText("...")).not.toBeInTheDocument(); }); test("renders a small number of pages at last page", async () => { const gotoPage = jest.fn(); const setCurrentPage = jest.fn(); render( , ); expect(screen.getByText("Previous")).toBeInTheDocument(); expect(screen.queryByText("Next")).not.toBeInTheDocument(); expect(screen.getByText("1")).toBeInTheDocument(); expect(screen.getByText("2")).toBeInTheDocument(); expect(screen.getByText("3")).toBeInTheDocument(); expect(screen.queryByText("...")).not.toBeInTheDocument(); }); test("renders a large number of pages", async () => { const gotoPage = jest.fn(); const setCurrentPage = jest.fn(); render( , ); expect(screen.getByText("Previous")).toBeInTheDocument(); expect(screen.getByText("Next")).toBeInTheDocument(); expect(screen.queryByText("2")).not.toBeInTheDocument(); expect(screen.getByText("9")).toBeInTheDocument(); expect(screen.getByText("10")).toBeInTheDocument(); expect(screen.getByText("11")).toBeInTheDocument(); expect(screen.queryByText("12")).not.toBeInTheDocument(); expect(screen.getAllByText("…")).toHaveLength(2); });