QueryEditor: Fix crash in angular panels when query have error (#45422)

This commit is contained in:
Zoltán Bedi 2022-02-16 10:34:29 +01:00 committed by GitHub
parent b4dd3138ce
commit befb2afccc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 4 deletions

View File

@ -54,10 +54,24 @@ describe('filterPanelDataToQuery', () => {
const panelData = filterPanelDataToQuery(withError, 'B');
expect(panelData).toBeDefined();
expect(panelData?.state).toBe(LoadingState.Error);
expect(panelData?.error).toBe(withError.error);
});
// @ts-ignore typescript doesn't understand that panelData can't be undefined here
expect(panelData.state).toBe(LoadingState.Error);
// @ts-ignore typescript doesn't understand that panelData can't be undefined here
expect(panelData.error).toBe(withError.error);
it('should set the state to done if the frame has no errors', () => {
const withError = {
...data,
};
withError.state = LoadingState.Error;
const panelDataB = filterPanelDataToQuery(withError, 'B');
expect(panelDataB?.series.length).toBe(3);
expect(panelDataB?.series[0].refId).toBe('B');
expect(panelDataB?.state).toBe(LoadingState.Error);
const panelDataA = filterPanelDataToQuery(withError, 'A');
expect(panelDataA?.series.length).toBe(1);
expect(panelDataA?.series[0].refId).toBe('A');
expect(panelDataA?.state).toBe(LoadingState.Done);
});
});

View File

@ -480,6 +480,8 @@ export function filterPanelDataToQuery(data: PanelData, refId: string): PanelDat
const error = data.error && data.error.refId === refId ? data.error : undefined;
if (error) {
state = LoadingState.Error;
} else {
state = LoadingState.Done;
}
const timeRange = data.timeRange;