Функция тестовых реквизитов в поле ввода на несколько уровней вглубь компонента React с использованием Enzyme - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь проверить анонимную функцию, передаваемую в реквизит 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");

    });
...