QueryEditorRow.test.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { LoadingState, toDataFrame } from '@grafana/data';
  2. import { PanelData, DataQueryRequest } from '@grafana/ui';
  3. import { filterPanelDataToQuery } from './QueryEditorRow';
  4. function makePretendRequest(requestId: string, subRequests?: DataQueryRequest[]): DataQueryRequest {
  5. return {
  6. requestId,
  7. // subRequests,
  8. } as DataQueryRequest;
  9. }
  10. describe('filterPanelDataToQuery', () => {
  11. const data: PanelData = {
  12. state: LoadingState.Done,
  13. series: [
  14. toDataFrame({ refId: 'A', fields: [{ name: 'AAA' }], meta: {} }),
  15. toDataFrame({ refId: 'B', fields: [{ name: 'B111' }], meta: {} }),
  16. toDataFrame({ refId: 'B', fields: [{ name: 'B222' }], meta: {} }),
  17. toDataFrame({ refId: 'B', fields: [{ name: 'B333' }], meta: {} }),
  18. toDataFrame({ refId: 'C', fields: [{ name: 'CCCC' }], meta: { requestId: 'sub3' } }),
  19. ],
  20. error: {
  21. refId: 'B',
  22. message: 'Error!!',
  23. },
  24. request: makePretendRequest('111', [
  25. makePretendRequest('sub1'),
  26. makePretendRequest('sub2'),
  27. makePretendRequest('sub3'),
  28. ]),
  29. };
  30. it('should not have an error unless the refId matches', () => {
  31. const panelData = filterPanelDataToQuery(data, 'A');
  32. expect(panelData.series.length).toBe(1);
  33. expect(panelData.series[0].refId).toBe('A');
  34. expect(panelData.error).toBeUndefined();
  35. });
  36. it('should match the error to the query', () => {
  37. const panelData = filterPanelDataToQuery(data, 'B');
  38. expect(panelData.series.length).toBe(3);
  39. expect(panelData.series[0].refId).toBe('B');
  40. expect(panelData.error!.refId).toBe('B');
  41. });
  42. });