Модульный тест typeError: Невозможно прочитать свойство 'target' из неопределенного - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь расширить окно отображения при нажатии на радио кнопку (из Material-UI). Есть только одна радиокнопка, которая имеет имя = «источник».

В моем рендере у меня есть:

<Radio
   checked={this.state.someState === ix}
   value={ix}
   classes={{root: classes.checkbox, checked: classes.checked}}
   onClick={(e)=> this.handleExpandClick(e, sources)}
   name="source"
/>

handleExpandClick(event, sources) {
        const selectedSources = [...this.props.sources] || [];
        let index;
        const selectedSource = (event.target.name);
        console.log(selectedSource)
        if (event.target && event.target.checked) {
                if (selectedSources.indexOf(selectedSource) <=0) {
                    selectedSources.push(selectedSource)
                } else {
                    index = selectedSources.indexOf(selectedSource)
                    if (index >= 0) {
                        selectedSources.splice(index, 1);
                    }
                }
        } else {
            return null
        }
        this.setState({expandedSources: selectedSources})

Когда я console.log событие, имя идентифицируется как «источник» с допустимым значением, которое ожидается. Но проверка по-прежнему не проходит и говорят, что цель не определена.

Юнит-тест:

*wrapper/instance setup here

it('should fire the handleExpandClick function when source checkbox is clicked', () => {
        const event = {target: {name: 'test'}};
        let handleClick = instance.handleExpandClick(event, sources);

        wrapper.find(Radio).at(0).simulate('click');
        expect(handleClick.calledOnce).toBe(true);
}); 

Что я делаю не так? Я все еще изучаю правильное модульное тестирование, поэтому любой совет будет принят.

...