Модульное тестирование ввода типа файла в реагирующем функциональном компоненте - PullRequest
0 голосов
/ 20 июня 2019

У меня есть функциональный компонент в реакции, который в основном отображает файловый браузер, и выбранное пользователем имя файла передается вызывающей стороне. Я пытаюсь написать модульный тест для этой функции. Я использую useRef для отображения файлового браузера

function SelectFile(props) {
    const ref1 = useRef();

    const handleChange = () => {
        console.log(ref1.current.files[0].name);
    };

    return (
        <div>
            <label onClick = ref1.current.click()>Select</label>
            <input type = "file" style={{ display: 'none' }} ref={ref1} 
             onChange={handleClick} />
        </div>
    );
}

Тест, который я сейчас имею, выглядит примерно так:

const wrapper = mount(<SelectFile />)
const input = wrapper.find('input');
input.simulate('change', {
      target: {
         files: [
           'fileName'
         ]   
      }
    });

Приведенный выше код и тест дают мне исключение, говорящее: Не удается прочитать свойство 'имя' из неопределенного

Однако, когда я запускаю код, я вижу правильный журнал в консоли с правильным именем файла в функции handleChange

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...