Здравствуйте, я тестирую Hooks, поэтому я действительно заблудился, пытался найти ответ, но безрезультатно.
Итак, вопрос в том, как я могу протестировать useEffect
из этого кода?
Код:
const [ range, setRange ] = useState(DATE_OPTIONS.LAST_30_DAYS)
const [ isLoading, setIsLoading ] = useState(true)
const startLoading = () => setIsLoading(true)
const stopLoading = () => setIsLoading(false)
useEffect(() => {
startLoading()
fetchYearlyOptiDrive(range, objectId)
.then(stopLoading)
.catch(stopLoading)
}, [range, objectId])
И то, что я хочу проверить из кода, это LoadingIndicator
, проверьте реквизиты isLoading
, если это true
или false
.
<LoadingIndicator {...{ isLoading }} />
Тест:
test('should return the default value', () => {
const wrapper = mount(<OptiDriveCard {...props} />)
expect(wrapper.find('LoadingIndicator').props).toBeTruthy()
})
Ошибка:
Инвариантное нарушение: Тип элементанедопустимо: ожидается строка (для встроенных компонентов) или класс / функция (для составных компонентов), но получено: undefined
Любое предложение?