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/); }); });