Я пытаюсь проверить анонимную функцию, передаваемую в реквизит onChange в поле ввода. Я просто хочу убедиться, что он был вызван onChange.
import {AgGridReact} from "ag-grid-react";
import {GridApi} from "ag-grid-community";
const onGridReady = async (params) => {
setGridApi(params.api);
};
const filter = (event) => {
gridApi?.setQuickFilter(event.target.value);
}
const [gridApi, setGridApi] = useState<GridApi | null>(null);
<Container>
<div>
<div>
<div>
<input
id="filter"
className="searchBar form-control my-0 py-1"
type="text"
placeholder="Search any Columns..."
aria-label="Search"
onChange={e => filter(e)}
/>
</div>
</div>
</div>
</Container>
Многие решения, с которыми я сталкивался, требуют прохождения реквизита через компонент React, который содержит поле ввода. Я не нашел способ сделать это. Передаваемый реквизит - это просто событие onChange, локальное для поля ввода. Вот что у меня есть.
it("component input field to call function on change", () => {
const onSearchMock = jest.fn();
const event = {
target: {value: 'testVal'},
};
const wrapper = mount(
<Provider store={store}>
<Container props={[]}/>
</Provider>
);
wrapper.find('#filter').simulate('change', event);
expect(onSearchMock).toBeCalledWith("testVal");
});