Files
PriceUpdaterAppv2/tests/tui/components/common/Pagination.test.js

111 lines
2.9 KiB
JavaScript

const React = require("react");
const {
Pagination,
SimplePagination,
} = require("../../../../src/tui/components/common/Pagination.jsx");
describe("Pagination Component", () => {
it("should create Pagination component with default props", () => {
const component = React.createElement(Pagination);
expect(component).toBeDefined();
expect(component.type).toBe(Pagination);
});
it("should accept pagination props", () => {
const mockOnPageChange = jest.fn();
const component = React.createElement(Pagination, {
currentPage: 2,
totalPages: 5,
totalItems: 50,
itemsPerPage: 10,
onPageChange: mockOnPageChange,
});
expect(component.props.currentPage).toBe(2);
expect(component.props.totalPages).toBe(5);
expect(component.props.totalItems).toBe(50);
expect(component.props.itemsPerPage).toBe(10);
expect(component.props.onPageChange).toBe(mockOnPageChange);
});
it("should accept display options", () => {
const component = React.createElement(Pagination, {
showItemCount: false,
showPageNumbers: false,
showNavigation: false,
compact: true,
});
expect(component.props.showItemCount).toBe(false);
expect(component.props.showPageNumbers).toBe(false);
expect(component.props.showNavigation).toBe(false);
expect(component.props.compact).toBe(true);
});
it("should accept disabled prop", () => {
const component = React.createElement(Pagination, {
disabled: true,
});
expect(component.props.disabled).toBe(true);
});
it("should handle edge cases with props", () => {
const component = React.createElement(Pagination, {
currentPage: 0,
totalPages: 1,
totalItems: 5,
itemsPerPage: 10,
});
expect(component.props.currentPage).toBe(0);
expect(component.props.totalPages).toBe(1);
expect(component.props.totalItems).toBe(5);
});
it("should accept onPageChange callback", () => {
const mockCallback = jest.fn();
const component = React.createElement(Pagination, {
onPageChange: mockCallback,
});
expect(component.props.onPageChange).toBe(mockCallback);
});
});
describe("SimplePagination Component", () => {
it("should create SimplePagination component", () => {
const component = React.createElement(SimplePagination, {
currentPage: 1,
totalPages: 5,
});
expect(component).toBeDefined();
expect(component.type).toBe(SimplePagination);
expect(component.props.currentPage).toBe(1);
expect(component.props.totalPages).toBe(5);
});
it("should accept onPageChange callback", () => {
const mockCallback = jest.fn();
const component = React.createElement(SimplePagination, {
currentPage: 0,
totalPages: 3,
onPageChange: mockCallback,
});
expect(component.props.onPageChange).toBe(mockCallback);
});
it("should accept disabled prop", () => {
const component = React.createElement(SimplePagination, {
currentPage: 1,
totalPages: 5,
disabled: true,
});
expect(component.props.disabled).toBe(true);
});
});