Я пытаюсь проверить событие onChange и получаю следующую ошибку:
TypeError: e.target.getAttribute не является функцией
Jest / Enzyme React JS
Вот метод:
handleChange = (e) => {
let key = e.target.name
let value = e.target.getAttribute('value')
let otherValue = e.target.value
let localState = {}
let chartObj = {}
if (value == null && otherValue != undefined) {
localState[key] = otherValue
chartObj = this.buildChartObj({ switchValue: key, chartObjValue: otherValue })
} else {
localState[key] = value
chartObj = this.buildChartObj({ switchValue: key, chartObjValue: value })
}
this.props.updateViewXMLValue(chartObj)
this.setState(localState)
}
Часть кода, где onChange вызывает handleChange
buildCategoryDropdown = () => {
<div className='tab-input-container'>
<select className='shape-dropdown' onChange={this.handleChange} name='category' defaultValue={!this.props.defaultData.category.$.id ? 'default' : this.props.defaultData.category.$.id}>
{categories}
тестовый файл: есть 3 classNames: shape-dropdown ', тестовые проходы для симуляции в (0), но не для 1 и 2. Я также попытался добавить Id, но все еще получаю ту же ошибку
it('should call onChange event', () => {
baseProps.onChange.mockClear();
wrapper.setState({
localState:{},
});
wrapper.update();
wrapper.find('.shape-dropdown').at(0).simulate('change',{ target: {name: 'value'}, value:"value" })
expect(wrapper.state('localState')).toEqual('value')