import { render, screen, fireEvent } from '@testing-library/react'; import { ThemeProvider } from '../../../theme'; jest.mock('next-intl', () => ({ useTranslations: () => (key: string, values?: Record) => values ? `${key}:${JSON.stringify(values)}` : key, useLocale: () => 'en', })); import Pager from './Pager'; describe('', () => { const wrap = (ui: React.ReactNode) => render({ui}); it('renders nothing for a single page', () => { const { container } = wrap(); expect(container).toBeEmptyDOMElement(); }); it('disables prev on the first page and next on the last', () => { wrap(); expect(screen.getByText('page_prev')).toBeDisabled(); expect(screen.getByText('page_next')).not.toBeDisabled(); }); it('fires onPrev/onNext', () => { const onPrev = jest.fn(); const onNext = jest.fn(); wrap(); fireEvent.click(screen.getByText('page_prev')); fireEvent.click(screen.getByText('page_next')); expect(onPrev).toHaveBeenCalledTimes(1); expect(onNext).toHaveBeenCalledTimes(1); }); });