import React from "react";
import "@testing-library/jest-dom/extend-expect";
import { render, fireEvent } from "@testing-library/react";
import Pagination from "../pagination";
test("shows default pagination", () => {
const { queryByTestId } = render();
expect(queryByTestId("honeyui-pagination")).toBeTruthy();
expect(queryByTestId("honeyui-pagination-item-0")).toBeTruthy();
expect(queryByTestId("honeyui-pagination-item-1")).toBeTruthy();
expect(queryByTestId("honeyui-pagination-item-2")).toBeTruthy();
// With page size 20 3rd item should be null
expect(queryByTestId("honeyui-pagination-item-3")).toBeFalsy();
});
test("shows with different page size", () => {
const { queryByTestId } = render(
);
expect(queryByTestId("honeyui-pagination-item-0")).toBeTruthy();
expect(queryByTestId("honeyui-pagination-item-1")).toBeTruthy();
expect(queryByTestId("honeyui-pagination-item-2")).toBeTruthy();
expect(queryByTestId("honeyui-pagination-item-3")).toBeTruthy();
expect(queryByTestId("honeyui-pagination-item-4")).toBeTruthy();
expect(queryByTestId("honeyui-pagination-item-5")).toBeFalsy();
});
test("shows with custom class name", () => {
const { queryByTestId } = render(
);
expect(queryByTestId("honeyui-pagination-list")).toHaveClass("custom-class");
});
test("calls onPageChange on page change", () => {
const onPageChange = jest.fn();
const { queryByTestId } = render(
);
expect(onPageChange).toHaveBeenCalledTimes(0);
fireEvent.click(queryByTestId("honeyui-pagination-item-1-link"));
expect(onPageChange).toHaveBeenCalledTimes(1);
expect(onPageChange).lastCalledWith(1);
});
test("calls onPageChange on page next", () => {
const onPageChange = jest.fn();
const { queryByTestId } = render(
);
expect(onPageChange).toHaveBeenCalledTimes(0);
fireEvent.click(queryByTestId("honeyui-pagination-item-forward-link"));
expect(onPageChange).toHaveBeenCalledTimes(1);
expect(onPageChange).lastCalledWith(1);
});
test("calls onPageChange on page next", () => {
const onPageChange = jest.fn();
const { queryByTestId } = render(
);
expect(onPageChange).toHaveBeenCalledTimes(0);
fireEvent.click(queryByTestId("honeyui-pagination-item-back-link"));
expect(onPageChange).toHaveBeenCalledTimes(1);
expect(onPageChange).lastCalledWith(0);
});