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();
});
});