import { useState } from 'react'; import { cleanup, fireEvent } from '@testing-library/react'; import { render } from '../../utils/theme-render-wrapper'; import { ClientImage } from './client-image'; afterEach(cleanup); const listItems = [ { default: true, name: 'p81', content: { src: 'https://www.perimeter81.com/app/themes/perimeter81/resources/assets/images/favicon81.ico', title: 'Perimeter 81', subtitle: 'Partner' } }, { name: 'ini', content: { src: '', title: 'Ini', subtitle: 'Partner' } }, { name: 'mini', content: { title: 'Mini', subtitle: 'Client' } }, { name: 'miny', content: { title: 'Miny' } }, { name: 'mo', content: {} } ]; describe('', () => { it(`Should render successfully`, () => { const Wrapper = () => { const [selectValue, setSelectValue] = useState(''); return ( () => setSelectValue(name.toString()) }} /> ); }; const { queryByTestId, queryByText } = render(); const selectEl = queryByTestId('select'); selectEl?.click(); const itemEl = queryByText(listItems[0].name); itemEl?.click(); }); it(`Should render a disabled select`, () => { const Wrapper = () => { const [selectValue, setSelectValue] = useState(''); return ( () => setSelectValue(name.toString()), listItems }} /> ); }; render(); }); it(`Should activate callback function`, () => { const handleSelectClickCB = jest.fn(); const { queryByTestId } = render( jest.fn(), listItems }} /> ); const selectEl = queryByTestId('select'); selectEl?.click(); expect(handleSelectClickCB).toHaveBeenCalled(); }); it(`Should open dropdown and activate search`, () => { const handleSelectClickCB = jest.fn(); const { queryByTestId, queryByText } = render( jest.fn(), listItems }} /> ); const selectEl = queryByTestId('select'); selectEl?.click(); const inputEl = queryByTestId('searchField'); expect(inputEl).toBeTruthy(); if (inputEl) { fireEvent.change(inputEl, { target: { value: 'i' } }); fireEvent.keyDown(inputEl, { key: 'Backspace' }); } const itemEl = queryByText('Client'); itemEl?.click(); expect(handleSelectClickCB).toHaveBeenCalled(); }); });