import React from 'react'
import { render, screen, fireEvent } from '@testing-library/react'
import Paginator from '../Paginator'
import { PaginationIterator } from '../types/definitions'
describe('Paginator', () => {
const spyFn = jest.fn()
const mockProps = {
className: 'test-classname',
list: [1, 2, 3, 4, 5, '...', 13] as PaginationIterator,
currentPage: 1,
goTo: spyFn
}
it('should render without crashing', () => {
const props = {
...mockProps,
useDefaultStyles: true
}
const { getByText } = render()
expect(getByText('2')).toBeTruthy()
expect(getByText('3')).toBeTruthy()
expect(getByText('6')).toBeTruthy()
expect(getByText('14')).toBeTruthy()
fireEvent.click(screen.getByText(/14/i))
expect(spyFn).toHaveBeenCalledTimes(1)
const el = getByText('...')
expect(el.style.width).toBe('40px')
expect(el.style.backgroundColor).toBe('rgb(255, 255, 255)')
})
it('should render without default styles', () => {
const props = {
...mockProps,
useDefaultStyles: false
}
const { getByText } = render()
const el = getByText('...')
expect(el.style.width).toBe('')
expect(el.style.backgroundColor).toBe('')
})
})