Я создал компонент React, который я пытаюсь протестировать с помощью React Testing Library .В моем компоненте у меня есть следующий компонент выбора и его обработчик изменения
Component.jsx
<SingleSelect
name="filter"
label="Status"
value={this.state.weatherStatus}
options={this.state.weatherStatusOptions}
onChange={this.handleFilterChange}
testId="status"
/>
onChange handleFilterChange function
handleFilterChange = (event) => {
this.setState({ weatherStatus: event.value });
}
Примером передаваемого значения this.state.weatherStatus
является { id: 1, text: "cool weather"}
. Для этого я попытался написать макет, как показано ниже.
jest.mock('@material-ui/core/Select', () => props => (
<div>
<input
onChange={(e) => props.onChange({ target: { value: e.target.value }})}
value={props.value}
data-testid={props['data-testid']}
/>
{props.children}
</div>
));
fireEvent.change(getByTestId('select'), { target: { value: { id: 1, text: "cool" } } });
expect(getByTestId('select').value).toEqual({ id: 1, text: "cool" });
Но он не работает вообще.Любое предложение?