/**
* Component: Pagination Tests
* Documentation: documentation/frontend/components.md
*/
// @vitest-environment jsdom
import React from 'react';
import { fireEvent, render, screen } from '@testing-library/react';
import { describe, expect, it, vi } from 'vitest';
import { Pagination } from '@/components/ui/Pagination';
describe('Pagination', () => {
it('renders nothing when there is only one page', () => {
const { container } = render();
expect(container.firstChild).toBeNull();
});
it('renders ellipses for large page ranges', () => {
render();
const ellipses = screen.getAllByText('...');
expect(ellipses.length).toBeGreaterThan(0);
});
it('calls onPageChange for navigation controls', () => {
const onPageChange = vi.fn();
render();
fireEvent.click(screen.getByLabelText('Previous page'));
expect(onPageChange).toHaveBeenCalledWith(1);
fireEvent.click(screen.getByLabelText('Next page'));
expect(onPageChange).toHaveBeenCalledWith(3);
fireEvent.click(screen.getByLabelText('Page 4'));
expect(onPageChange).toHaveBeenCalledWith(4);
});
});