/** * 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); }); });