Все, что я хочу сделать, это проверить, что маршрут меняется с /A
на /B
при нажатии на Link
. Кажется, это довольно легко проверить, но я попробовал все, и ничего не работает. Вот тест, который продолжает терпеть неудачу:
it('should change the location to /B', () => {
// set the starting path to /A
let history = createBrowserHistory();
history.push('/A');
// render the Router with the starting path /A
// and define the routes and Link
let wrapper = mount(
<Router history={history}>
<Switch>
<Route path="/A" component={() => <Placeholder message="A" />} />
<Route path="/B" component={() => <Placeholder message="B" />} />
<Route path="/" component={() => <Placeholder message="Home" />} />
</Switch>
<Link to="/B" />
</Router>,
);
// double check we are currently in /A
expect(wrapper.find(Placeholder).prop('message')).toBe('A'); // SUCCEEDS
// click the Link that should take us to /B
wrapper.find(Link).simulate('click', { button: 0 }); // despite clicking the link, it doesn't actually work?
// expect us to now be at /B
expect(wrapper.find(Placeholder).prop('message')).toBe('B'); // FAILS
});
В случае, если вы хотите увидеть компонент Placeholder
(но это супер базовый c):
class Placeholder extends React.Component<any, any> {
render() {
return (
<div className="text-center m-auto">
<small className="text-center">{this.props.message}</small>
</div>
);
}
}