Имитация - предназначена для запуска на 1 узле. 0 найдено вместо - PullRequest
0 голосов
/ 08 марта 2019

Невозможно понять, почему onChange не вызывается. Я добавил идентификатор, но он не может найти элемент.

File.test.js

it("should call onChange event  on renderToDropdown ", () => {
    baseProps.onChange.mockClear();
    wrapper.setState({
    toStatusList:[{
        StatusID:"",
        Name:"",
    }],
   selectedTo:'password test 1'
    });
   wrapper.update() 
   wrapper.find('select[id="testonchange"]').simulate('change',{target: {value: 'password test 1'}} )
 });

Также пробовал следующее:

wrapper.find('#testonchange').simulate('change',{target: {value: 'password test 1'}} )

File.js

renderToDropdown = () => {
let list = this.state.toStatusList;
let result = list.map((item) => {
  return <option value={item.StatusID}>{item.Name}</option>
})
result.push(<option value='default' disabled>Select...</option>)
return (
  <select value={this.state.selectedTo} id='testonchange' onChange={(e) => {this.handleToChange(e);}}>
    {result}
  </select>
)
}

handleToChange = (e) => {
this.setState({selectedTo: e.target.value});

Использование Jest и Enzyme для React JS

Ответы [ 2 ]

1 голос
/ 11 марта 2019

попробовать:

wrapper.find('select').prop('onChange')({value: 'password test 1'});
0 голосов
/ 08 марта 2019

Что такое обертка здесь? Пустой экземпляр? Мелкий рендер или монтирование?

...