Тестирование события onChange для customSelectComponent - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь протестировать свой компонент customSelect с помощью jest. Однако он выдает ошибку -

Ошибка сопоставления: полученное значение должно быть ложной или шпионской функцией

Вот мой компонент customSelect:

render() {
 const updatedProps = assign({}, this.props, {
  onChange: value => this.onChange(value, this.props.onChange || false),
  onBlur: event => this.onBlur(event, this.props.onBlur || false),
  onFocus: event => this.onFocus(event, this.props.onFocus || false),
 });

 return (<div className='customSelect'><Select ...updatedProps /></div>);
}

onChange:

onChange(value, changeHandler) {
 return Promise.resolve(changeHandler && changeHandler(value.value)).then(() => {
  !this.componentIsUnmounted && this.setState({
   selectedValue: value
  }, () => this.validate());
 });
}

контрольный пример:

test('verify onChange logic', () => {
    const props =  {
    label: 'label',
    options: [
      { value: 'value1', label: 'Value One' },
      { value: 'value2', label: 'Value Two' },
    ],
    defaultValue: 'defaultValue',
    onChange: jest.fn(),
  };
    const onChangeMockFn = jest.fn();
    const customSelectComponent = shallow(<CustomSelect {...props} />);
    const event = { target: { value: { value: 'testValue' } } };
    customSelectComponent.find(Select).simulate('change', event);
    expect(customSelectComponent.instance().onChange).toBeCalledWith(event.target.value, jest.fn());
    // expect(customSelectComponent.instance().state).toEqual('testValue');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...