ElectronicBabylonianLiterature/ebl-frontend

View on GitHub
src/fragmentarium/ui/fragment/FragmentPager.test.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import React from 'react'
import { render, screen } from '@testing-library/react'
import { MemoryRouter } from 'react-router-dom'
import { Promise } from 'bluebird'
import FragmentPager from './FragmentPager'

const number = 'K.00000'
let fragmentService
let fragmentPagerData

beforeEach(async () => {
  fragmentService = {
    fragmentPager: jest.fn(),
  }
  fragmentPagerData = {
    next: 'K.00001',
    previous: 'J.99999',
  }
  fragmentService.fragmentPager.mockReturnValue(
    Promise.resolve(fragmentPagerData)
  )
  render(
    <MemoryRouter>
      <FragmentPager
        fragmentNumber={number}
        fragmentService={fragmentService}
      ></FragmentPager>
    </MemoryRouter>
  )
  await screen.findByText('K.00000')
})
it.each([
  ['Previous', 'previous'],
  ['Next', 'next'],
])('Test Links to %s Button', (label, expected) => {
  expect(screen.getByLabelText(label)).toHaveAttribute(
    'href',
    `/fragmentarium/${encodeURIComponent(fragmentPagerData[expected])}`
  )
})

it('Renders children', () => {
  expect(screen.getByText(number)).toBeInTheDocument()
})