1234567891011121314151617181920212223242526272829 |
- import * as qs from 'query-string';
- // More closely mocks a router push -- updates wrapper's props/context
- // with updated `router` and calls `wrapper.update()`
- export function mockRouterPush(wrapper, router) {
- router.push.mockImplementation(({query}) => {
- const stringifiedQuery = qs.stringify(query);
- const location = {
- ...router.location,
- // Need to make sure query more closely reflects datatypes in browser
- // e.g. if we had a param that was boolean, it would get stringified
- query: qs.parse(stringifiedQuery),
- search: stringifiedQuery,
- };
- const newRouter = {
- router: {
- ...router,
- location,
- },
- location,
- };
- wrapper.setProps(newRouter);
- wrapper.setContext(newRouter);
- wrapper.update();
- });
- }
|