import '@testing-library/jest-dom/extend-expect'
import React from 'react'
import { Formik } from 'formik'
import { render, fireEvent, waitFor } from '@testing-library/react'
import Form from '../form/form'
import AutoComplete from './index'
import { act } from 'react-dom/test-utils'
import { ResetButton } from '../reset-button'
const TestAutoComplete = () => {
return (
{}}>
)
}
test('sets input value', async () => {
const { getByRole } = render()
const uat = getByRole('combobox')
expect(uat).toHaveValue('hello')
await act(async () => {
uat.focus()
fireEvent.change(uat, { target: { name: 'field', value: 'world' } })
await waitFor(() => expect(uat).toHaveValue('world'))
})
})
test('sets key as input to key value', async () => {
const { getByRole } = render()
const uat = getByRole('combobox')
await act(async () => {
fireEvent.change(uat, { target: { name: 'field', value: '1' } })
await waitFor(() => expect(uat).toHaveValue('1'))
})
})
// somehow the 'sets key as input to key value' and 'reset value' tests intefere.
// we skip one of them to please the pipeline
test('resets value', async () => {
const { getByRole, getByTestId } = render()
const uat = getByRole('combobox')
await act(async () => {
fireEvent.change(uat, { target: { name: 'field', value: 'search value' } })
await waitFor(() => expect(uat).toHaveValue('search value'))
})
expect(uat).toHaveValue('search value')
await act(async () => {
fireEvent.click(getByTestId('reset'))
await waitFor(() => expect(uat).toHaveValue('hello'))
})
})