ElectronicBabylonianLiterature/ebl-frontend

View on GitHub
src/signs/ui/search/SignsSearchForm.test.tsx

Summary

Maintainability
A
35 mins
Test Coverage
import React from 'react'
import { Router } from 'react-router-dom'
import { createMemoryHistory } from 'history'
import { render, screen } from '@testing-library/react'

import SignsSearchForm from 'signs/ui/search/SignsSearchForm'
import userEvent from '@testing-library/user-event'

const history = createMemoryHistory()

it('Adds lemma to query string on submit', async () => {
  renderSignsSearchForm()
  jest.spyOn(history, 'push')
  userEvent.type(screen.getByPlaceholderText('Sign or Reading'), 'ba')
  userEvent.click(screen.getAllByRole('button')[0])

  expect(history.push).toBeCalledWith(
    '?listsName&listsNumber&sign=ba&subIndex=1&value=ba'
  )
})

function renderSignsSearchForm() {
  const signQueryDefault = {
    value: undefined,
    subIndex: undefined,
    listsName: undefined,
    listsNumber: undefined,
    isIncludeHomophones: undefined,
    isComposite: undefined,
  }
  return render(
    <Router history={history}>
      <SignsSearchForm sign={undefined} signQuery={signQueryDefault} />
    </Router>
  )
}