Как смоделировать щелчок на значке Font Awesome, используя Jest? - PullRequest
0 голосов
/ 19 февраля 2020

Я тестирую с помощью Jest и пытаюсь проверить щелчок на значке Font Awesome. Я пробовал разные способы найти «узел», но я получаю сообщение об ошибке, что «Метод« имитировать »предназначен для запуска на 1 узле. Вместо этого найдено 0». Любое понимание будет полезно.

Ошибка, которую я получаю, когда пытаюсь использовать разные входные данные для component.find(): Method “simulate” is meant to be run on 1 node. 0 found instead.

StringEditor

const clearInput = () => {
    onRemove()
}

render (
    ...
    <FontAwesomeIcon icon={['fal', 'times-circle']} className="clear-button" 
    onClick={clearInput} /> : null`
) 

onRemove является функцией обратного вызова.

it('should call clearInput thus onRemove', () =>{

    const onRemove= jest.fn()
    const component = mount(<StringEditor {...defaultProps}  onRemove={onRemove} />)
    component.find('<dont know what to put>').simulate('click')
    expect(saveValueFn).toBeCalled()
})

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Попробуйте это:

it('should call clearInput thus onRemove', () =>{
    const onRemove= jest.fn()
    const component = mount(<StringEditor {...defaultProps}  onRemove={onRemove} />)
    component.find({ className: "clear-button" }).simulate('click');
    expect(clearInput).toHaveBeenCalled();
})
1 голос
/ 19 февраля 2020

Вы можете использовать селектор свойств объекта: https://airbnb.io/enzyme/docs/api/selector.html#4 -object-property-selector

Или конструктор компонента реагирования: https://airbnb.io/enzyme/docs/api/selector.html#2 -a-реагировать-компонент -constructor

...