Я пытаюсь протестировать мою реализацию API контекста с помощью jest, используя mount, но получаю ошибку
TypeError: Невозможно прочитать свойство 'state' из неопределенного
Я пробовал различные методы для передачи данных контекста компоненту во время тестирования, но пока безуспешно.
ApplicationContext.js
import React from 'react'
const AppContext = React.createContext()
export default AppContext
MyComponent.js file
render () {
return (
<AppContext.Consumer>
{context => (
{ context.state.user === SUPER_USER
? <Dashboard></Dashboard>
: <Info></Info>
)}
</AppContext.Consumer>
)
}
Методы, которые я попробовал
//version 1
const wrapper = mount(<AppContext.Provider context={{ state: { user: SUPER_USER } }}><ActivityDisplay {...props} /></AppContext.Provider>)
instance = wrapper.instance()
})
//version 2
wrapper = mount(<HomePage {...props} />, {
context: { state: { user: SUPER_USER } },
})
//version 3
wrapper = mount(<HomePage {...props} />, {
AppContext: {
Consumer: { user: SUPER_USER }
}
})
afterAll(() => {
wrapper.unmount()
})
it('should display dashboard when user is SUPER_USER', () => {
//do my assertions here
})
Когда я отлаживаю приложение с помощью вышеуказанного тестового кода, контекст всегда не определен