import { render, screen } from '@testing-library/react'; import { defaultsDeep } from 'lodash'; import React from 'react'; import { Provider } from 'react-redux'; import { getDefaultTimeRange, LoadingState } from '@grafana/data'; import { PanelDataErrorViewProps } from '@grafana/runtime'; import { configureStore } from 'app/store/configureStore'; import { PanelDataErrorView } from './PanelDataErrorView'; describe('PanelDataErrorView', () => { it('show No data when there is no data', () => { renderWithProps(); expect(screen.getByText('No data')).toBeInTheDocument(); }); it('show no value field config when there is no data', () => { renderWithProps({ fieldConfig: { overrides: [], defaults: { noValue: 'Query returned nothing', }, }, }); expect(screen.getByText('Query returned nothing')).toBeInTheDocument(); }); }); function renderWithProps(overrides?: Partial) { const defaults: PanelDataErrorViewProps = { panelId: 1, data: { state: LoadingState.Done, series: [], timeRange: getDefaultTimeRange(), }, }; const props = defaultsDeep(overrides ?? {}, defaults); const store = configureStore(); const stuff = render( ); return { ...stuff }; }