Teste do componente de reação incluído no Router (de preferência usando jest / enzima)
Eu tenho um componente React que está incluído no Componente de ordem superior com o Router, conforme abaixo:
module.exports = withRouter(ManageProfilePage);
Minhas rotas são as seguintes:
<Route path="/" component={AdrApp}>
<IndexRoute component={Login}/>
<Route component={CheckLoginStatus}>
<Route path="manage-profiles/:profileId" component=
{ManageProfilesPage}/>
</Route>
<Route path="*" component={notFoundPage}/>
</Route>
Preciso usar uma vez os métodos do ciclo de vida do roteador, é por isso que preciso do withRouter:
class ManageProfilePage extends React.Component {
componentDidMount() {
this.props.router.setRouteLeaveHook(this.props.route, () => {
...
})
render(){
...
}
}
Preciso testar esse componente usando o Jest / Enzyme e escrevi o caso de teste como abaixo:
describe('manage profile page test suite', () => {
it('snapshot test', () => {
const setRouteLeaveHook =jest.fn();
let wrapper = shallow(
<ManageProfilePage params={{id : 25, router:
setRouteLeaveHook}}/>
);
expect(wrapper).toMatchSnapshot();
})
})
A questão é que ele não está processando um nível de profundidade. Estou colando o instantâneo abaixo:
exports[`manage drug term page test suites snapshot test 1`] = `
<ManageProfilePage
params={
Object {
"id": 25,
"router": [Function],
}
}
/>
`;
Existe alguma maneira diferente de escrever meu caso de teste para poder renderizar o ManageProfilePage a pelo menos um nível? Ele não é capaz de renderizar, pois está dentro do WithRouter? Como testamos esse tipo de componente?