diff --git a/.betterer.results b/.betterer.results
index 6f5a994bf67..bf88139ba07 100644
--- a/.betterer.results
+++ b/.betterer.results
@@ -1283,14 +1283,6 @@ exports[`better eslint`] = {
       [0, 0, 0, "No untranslated strings. Wrap text with <Trans />", "0"],
       [0, 0, 0, "No untranslated strings. Wrap text with <Trans />", "1"]
     ],
-    "public/app/core/navigation/testRoutes.tsx:5381": [
-      [0, 0, 0, "No untranslated strings. Wrap text with <Trans />", "0"],
-      [0, 0, 0, "No untranslated strings. Wrap text with <Trans />", "1"],
-      [0, 0, 0, "No untranslated strings. Wrap text with <Trans />", "2"],
-      [0, 0, 0, "No untranslated strings. Wrap text with <Trans />", "3"],
-      [0, 0, 0, "No untranslated strings. Wrap text with <Trans />", "4"],
-      [0, 0, 0, "No untranslated strings. Wrap text with <Trans />", "5"]
-    ],
     "public/app/core/navigation/types.ts:5381": [
       [0, 0, 0, "Unexpected any. Specify a different type.", "0"]
     ],
diff --git a/public/app/core/components/AppChrome/MegaMenu/MegaMenu.test.tsx b/public/app/core/components/AppChrome/MegaMenu/MegaMenu.test.tsx
index f03f3907093..c91beb88ae0 100644
--- a/public/app/core/components/AppChrome/MegaMenu/MegaMenu.test.tsx
+++ b/public/app/core/components/AppChrome/MegaMenu/MegaMenu.test.tsx
@@ -1,12 +1,10 @@
-import { render, screen } from '@testing-library/react';
+import { screen } from '@testing-library/react';
 import userEvent from '@testing-library/user-event';
-import { Router } from 'react-router-dom';
-import { TestProvider } from 'test/helpers/TestProvider';
-import { getGrafanaContextMock } from 'test/mocks/getGrafanaContextMock';
+import { render } from 'test/test-utils';
 
 import { NavModelItem } from '@grafana/data';
 import { selectors } from '@grafana/e2e-selectors';
-import { locationService } from '@grafana/runtime';
+import { configureStore } from 'app/store/configureStore';
 
 import { MegaMenu } from './MegaMenu';
 
@@ -33,16 +31,8 @@ const setup = () => {
     },
   ];
 
-  const grafanaContext = getGrafanaContextMock();
-  grafanaContext.chrome.setMegaMenuOpen(true);
-
-  return render(
-    <TestProvider storeState={{ navBarTree }} grafanaContext={grafanaContext}>
-      <Router history={locationService.getHistory()}>
-        <MegaMenu onClose={() => {}} />
-      </Router>
-    </TestProvider>
-  );
+  const store = configureStore({ navBarTree });
+  return render(<MegaMenu onClose={() => {}} />, { store });
 };
 
 describe('MegaMenu', () => {
diff --git a/public/app/core/navigation/GrafanaRoute.test.tsx b/public/app/core/navigation/GrafanaRoute.test.tsx
index 301ccdae935..a8623765080 100644
--- a/public/app/core/navigation/GrafanaRoute.test.tsx
+++ b/public/app/core/navigation/GrafanaRoute.test.tsx
@@ -1,8 +1,6 @@
-import { render, screen } from '@testing-library/react';
-import { History, Location } from 'history';
+import { screen } from '@testing-library/react';
 import { lazy, ComponentType } from 'react';
-import { match } from 'react-router-dom';
-import { TestProvider } from 'test/helpers/TestProvider';
+import { render } from 'test/test-utils';
 
 import { setEchoSrv } from '@grafana/runtime';
 
@@ -11,11 +9,34 @@ import { Echo } from '../services/echo/Echo';
 import { GrafanaRoute, Props } from './GrafanaRoute';
 import { GrafanaRouteComponentProps } from './types';
 
+const mockLocation = {
+  search: '?query=hello&test=asd',
+  pathname: '',
+  state: undefined,
+  hash: '',
+};
 function setup(overrides: Partial<Props>) {
   const props: Props = {
-    location: { search: '?query=hello&test=asd' } as Location,
-    history: {} as History,
-    match: {} as match,
+    location: mockLocation,
+    history: {
+      length: 0,
+      action: 'PUSH',
+      location: mockLocation,
+      push: jest.fn(),
+      replace: jest.fn(),
+      go: jest.fn(),
+      goBack: jest.fn(),
+      goForward: jest.fn(),
+      block: jest.fn(),
+      listen: jest.fn(),
+      createHref: jest.fn(),
+    },
+    match: {
+      params: {},
+      isExact: false,
+      path: '',
+      url: '',
+    },
     route: {
       path: '/',
       component: () => <div />,
@@ -23,11 +44,7 @@ function setup(overrides: Partial<Props>) {
     ...overrides,
   };
 
-  render(
-    <TestProvider>
-      <GrafanaRoute {...props} />
-    </TestProvider>
-  );
+  render(<GrafanaRoute {...props} />);
 }
 
 describe('GrafanaRoute', () => {
diff --git a/public/app/core/navigation/testRoutes.tsx b/public/app/core/navigation/testRoutes.tsx
deleted file mode 100644
index 391d4dac3af..00000000000
--- a/public/app/core/navigation/testRoutes.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Link, NavLink } from 'react-router-dom';
-
-import { RouterDebugger } from './RouterDebugger';
-import { RouteDescriptor } from './types';
-
-export const testRoutes: RouteDescriptor[] = [
-  {
-    path: '/test1',
-    component: () => (
-      <>
-        <h1>Test1</h1>
-        <Link to={'/test2'}>Test2 link</Link>
-        <NavLink to={'/test2'}>Test2 navlink</NavLink>
-      </>
-    ),
-  },
-  {
-    path: '/test2',
-    component: () => (
-      <>
-        <h1>Test2 </h1>
-        <Link to={'/test1'}>Test1 link</Link>
-        <NavLink to={'/test1'}>Test1 navlink</NavLink>
-      </>
-    ),
-  },
-  {
-    path: '/router-debug',
-    component: RouterDebugger,
-  },
-];
diff --git a/public/app/features/dashboard/containers/DashboardPage.test.tsx b/public/app/features/dashboard/containers/DashboardPage.test.tsx
index 4e178bfe8a6..7a1f01125f0 100644
--- a/public/app/features/dashboard/containers/DashboardPage.test.tsx
+++ b/public/app/features/dashboard/containers/DashboardPage.test.tsx
@@ -1,7 +1,6 @@
 import { screen, waitFor } from '@testing-library/react';
 import { KBarProvider } from 'kbar';
 import { Component } from 'react';
-import { match } from 'react-router-dom';
 import { useEffectOnce } from 'react-use';
 import { mockToolkitActionCreator } from 'test/core/redux/mocks';
 import { render } from 'test/test-utils';
@@ -101,7 +100,7 @@ function setup(propOverrides?: Partial<Props>) {
 
   const props: Props = {
     ...getRouteComponentProps({
-      match: { params: { slug: 'my-dash', uid: '11' } } as unknown as match,
+      match: { params: { slug: 'my-dash', uid: '11' }, isExact: false, path: '', url: '' },
       route: { routeName: DashboardRoutes.Normal } as RouteDescriptor,
     }),
     navIndex: {
@@ -271,7 +270,7 @@ describe('DashboardPage', () => {
       const { rerender } = setup();
       rerender({ dashboard: getTestDashboard() });
       rerender({
-        match: { params: { uid: 'new-uid' } } as unknown as match,
+        match: { params: { uid: 'new-uid' }, isExact: false, path: '', url: '' },
         dashboard: getTestDashboard({ title: 'Another dashboard' }),
       });
       await waitFor(() => {
diff --git a/public/app/features/dashboard/containers/SoloPanelPage.test.tsx b/public/app/features/dashboard/containers/SoloPanelPage.test.tsx
index 97932973433..29753f6275a 100644
--- a/public/app/features/dashboard/containers/SoloPanelPage.test.tsx
+++ b/public/app/features/dashboard/containers/SoloPanelPage.test.tsx
@@ -1,6 +1,5 @@
 import { render, screen } from '@testing-library/react';
 import { Component } from 'react';
-import { match } from 'react-router-dom';
 import { getGrafanaContextMock } from 'test/mocks/getGrafanaContextMock';
 
 import { Dashboard } from '@grafana/schema';
@@ -75,7 +74,10 @@ function soloPanelPageScenario(description: string, scenarioFn: (ctx: ScenarioCo
           ...getRouteComponentProps({
             match: {
               params: { slug: 'my-dash', uid: '11' },
-            } as unknown as match,
+              isExact: false,
+              path: '',
+              url: '',
+            },
             queryParams: {
               panelId: '1',
             },
diff --git a/public/app/features/invites/SignupInvited.test.tsx b/public/app/features/invites/SignupInvited.test.tsx
index f352df4e701..295b0779a95 100644
--- a/public/app/features/invites/SignupInvited.test.tsx
+++ b/public/app/features/invites/SignupInvited.test.tsx
@@ -1,7 +1,6 @@
-import { render, screen, waitFor, within } from '@testing-library/react';
+import { screen, waitFor, within } from '@testing-library/react';
 import userEvent from '@testing-library/user-event';
-import { match } from 'react-router-dom';
-import { TestProvider } from 'test/helpers/TestProvider';
+import { render } from 'test/test-utils';
 
 import { getRouteComponentProps } from 'app/core/navigation/__mocks__/routeProps';
 
@@ -40,15 +39,14 @@ async function setupTestContext({ get = defaultGet }: { get?: typeof defaultGet
     ...getRouteComponentProps({
       match: {
         params: { code: 'some code' },
-      } as unknown as match,
+        isExact: false,
+        path: '',
+        url: '',
+      },
     }),
   };
 
-  render(
-    <TestProvider>
-      <SignupInvitedPage {...props} />
-    </TestProvider>
-  );
+  render(<SignupInvitedPage {...props} />);
 
   await waitFor(() => expect(getSpy).toHaveBeenCalled());
   expect(getSpy).toHaveBeenCalledTimes(1);