QueryEditorRow.test.ts 1.5 KB

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