mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Query Panels: Pass on loading state (#62545)
This commit is contained in:
parent
b78af0b0f0
commit
ec01e6d6b2
@ -109,8 +109,21 @@ describe('filterPanelDataToQuery', () => {
|
|||||||
const panelDataA = filterPanelDataToQuery(loadingData, 'A');
|
const panelDataA = filterPanelDataToQuery(loadingData, 'A');
|
||||||
expect(panelDataA?.state).toBe(LoadingState.Loading);
|
expect(panelDataA?.state).toBe(LoadingState.Loading);
|
||||||
});
|
});
|
||||||
|
it('should keep the state in loading until all queries are finished, even if the current query has errored', () => {
|
||||||
|
const loadingData: PanelData = {
|
||||||
|
state: LoadingState.Loading,
|
||||||
|
series: [],
|
||||||
|
error: {
|
||||||
|
refId: 'A',
|
||||||
|
message: 'Error',
|
||||||
|
},
|
||||||
|
timeRange: { from: dateTime(), to: dateTime(), raw: { from: 'now-1d', to: 'now' } },
|
||||||
|
};
|
||||||
|
|
||||||
it('should not set the state to error if the frame is still loading', () => {
|
const panelDataA = filterPanelDataToQuery(loadingData, 'A');
|
||||||
|
expect(panelDataA?.state).toBe(LoadingState.Loading);
|
||||||
|
});
|
||||||
|
it('should keep the state in loading until all queries are finished, if another query has errored', () => {
|
||||||
const loadingData: PanelData = {
|
const loadingData: PanelData = {
|
||||||
state: LoadingState.Loading,
|
state: LoadingState.Loading,
|
||||||
series: [],
|
series: [],
|
||||||
|
@ -10,13 +10,13 @@ import {
|
|||||||
DataQuery,
|
DataQuery,
|
||||||
DataSourceApi,
|
DataSourceApi,
|
||||||
DataSourceInstanceSettings,
|
DataSourceInstanceSettings,
|
||||||
|
DataSourcePluginContextProvider,
|
||||||
EventBusExtended,
|
EventBusExtended,
|
||||||
EventBusSrv,
|
EventBusSrv,
|
||||||
HistoryItem,
|
HistoryItem,
|
||||||
LoadingState,
|
LoadingState,
|
||||||
PanelData,
|
PanelData,
|
||||||
PanelEvents,
|
PanelEvents,
|
||||||
DataSourcePluginContextProvider,
|
|
||||||
QueryResultMetaNotice,
|
QueryResultMetaNotice,
|
||||||
TimeRange,
|
TimeRange,
|
||||||
toLegacyResponseData,
|
toLegacyResponseData,
|
||||||
@ -568,10 +568,12 @@ export function filterPanelDataToQuery(data: PanelData, refId: string): PanelDat
|
|||||||
// Only say this is an error if the error links to the query
|
// Only say this is an error if the error links to the query
|
||||||
let state = data.state;
|
let state = data.state;
|
||||||
const error = data.error && data.error.refId === refId ? data.error : undefined;
|
const error = data.error && data.error.refId === refId ? data.error : undefined;
|
||||||
if (error) {
|
if (state !== LoadingState.Loading) {
|
||||||
state = LoadingState.Error;
|
if (error) {
|
||||||
} else if (!error && data.state === LoadingState.Error) {
|
state = LoadingState.Error;
|
||||||
state = LoadingState.Done;
|
} else if (data.state === LoadingState.Error) {
|
||||||
|
state = LoadingState.Done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const timeRange = data.timeRange;
|
const timeRange = data.timeRange;
|
||||||
|
Loading…
Reference in New Issue
Block a user