import {createMemoryHistory, Route, Router, RouterContext} from 'react-router';
import {render} from 'sentry-test/reactTestingLibrary';
import useRouter from 'sentry/utils/useRouter';
import {RouteContext} from 'sentry/views/routeContext';
describe('useRouter', () => {
it('returns the current router object', function () {
let expectedRouter;
let actualRouter;
function HomePage() {
actualRouter = useRouter();
return null;
}
const memoryHistory = createMemoryHistory();
memoryHistory.push('/');
render(
{
expectedRouter = props.router;
return (
);
}}
>
);
expect(actualRouter).toEqual(expectedRouter);
});
it('throws error when called outside of routes provider', function () {
// Error is expected, do not fail when calling console.error
jest.spyOn(console, 'error').mockImplementation();
const memoryHistory = createMemoryHistory();
memoryHistory.push('/');
expect(() =>
render(
{
useRouter();
return null;
}}
/>
)
).toThrow(/useRouteContext called outside of routes provider/);
});
});