grafana/public/test/helpers/TestProvider.tsx
Torkel Ödegaard b8e7ef48d0
AppChrome: Unify logic for chromeless pages that should not have NavBar, CommandPalette, Search etc (#62281)
* Keybindings: No global keybindings on chromeless pages

* simplify condition

* Refactoring

* Align name and file

* Move logic into AppChrome

* minor fix

* Update Page.tsx

* Fixing test

* Fixed tests

* More fixes

* Fixed more tests

* Fixing final test

* Fixed search in old nav
2023-02-02 09:53:06 +01:00

33 lines
1.1 KiB
TypeScript

import { ToolkitStore } from '@reduxjs/toolkit/dist/configureStore';
import React from 'react';
import { Provider } from 'react-redux';
import { Router } from 'react-router-dom';
import { getGrafanaContextMock } from 'test/mocks/getGrafanaContextMock';
import { locationService } from '@grafana/runtime';
import { GrafanaContext, GrafanaContextType } from 'app/core/context/GrafanaContext';
import { configureStore } from 'app/store/configureStore';
import { StoreState } from 'app/types/store';
export interface Props {
storeState?: Partial<StoreState>;
store?: ToolkitStore;
children: React.ReactNode;
grafanaContext?: GrafanaContextType;
}
/**
* Wrapps component in redux store provider, Router and GrafanaContext
*/
export function TestProvider(props: Props) {
const { store = configureStore(props.storeState), grafanaContext = getGrafanaContextMock(), children } = props;
return (
<Provider store={store}>
<Router history={locationService.getHistory()}>
<GrafanaContext.Provider value={grafanaContext}>{children}</GrafanaContext.Provider>
</Router>
</Provider>
);
}