У меня есть функциональный компонент в реакции, который в основном отображает файловый браузер, и выбранное пользователем имя файла передается вызывающей стороне.
Я пытаюсь написать модульный тест для этой функции.
Я использую 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