Я пытаюсь установить prop - totalPages
- для подключенного компонента React
, но он не работает, как если бы компонент не перерисовывал:
const middlewares = [thunk]
const store = configureStore(middlewares)(STATE1)
wrapper = mount(
<Provider store={store} >
<BrowserRouter>
<SavedVariants match={{ params: {} }} />
</BrowserRouter>
</Provider>
)
wrapper.setProps({ 'totalPages': 3 })
console.log(wrapper.props())
const selector = `a[type='pageItem']`
const pageItems = wrapper.find(selector)
expect(pageItems.length).toEqual(3)
Jest
пишет, что pageItems.length
равно 0
, но должно быть 3
. Параметр totalPages
определяет количество страниц в компоненте semantic-ui-react
Pagination
, который работает правильно, когда я просто запускаю веб-приложение.
totalPages
определено в mapStateToProps
из SavedVariants
:
export const mapStateToProps = (state, ownProps) => ({
totalPages: getSavedVariantTotalPages(state, ownProps),
})
getSavedVariantTotalPages
является просто reselect
селектором.
console.log(wrapper.props())
показывает следующее:
{ store:
{ getState: [Function: getState],
getActions: [Function: getActions],
dispatch: [Function],
clearActions: [Function: clearActions],
subscribe: [Function: subscribe],
replaceReducer: [Function: replaceReducer] },
children:
{ '$$typeof': Symbol(react.element),
type: { [Function: BrowserRouter] propTypes: [Object] },
key: null,
ref: null,
props: { children: [Object] },
_owner: null,
_store: {} },
totalPages: 3 }
Итак, из моего понимания totalPages
было модифицирован (или фактически создан заново? ..) скорее для BrowserRouter
? Но как установить свойства внутреннего SavedVariants
?
Обновление
Каким-то образом не удается найти какой-либо элемент, который я пытаюсь найти в SavedVariants
компоненте с wrapper.find()
, и я получаю единственный ответ:
ReactWrapper { length: 0 }
Только сам компонент SavedVariants
может быть найден, как будто на самом деле никакого рендеринга не было.