PanelQueryRunner.test.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { getProcessedSeriesData } from './PanelQueryRunner';
  2. describe('QueryRunner', () => {
  3. it('converts timeseries to table skipping nulls', () => {
  4. const input1 = {
  5. target: 'Field Name',
  6. datapoints: [[100, 1], [200, 2]],
  7. };
  8. const input2 = {
  9. // without target
  10. target: '',
  11. datapoints: [[100, 1], [200, 2]],
  12. };
  13. const data = getProcessedSeriesData([null, input1, input2, null, null]);
  14. expect(data.length).toBe(2);
  15. expect(data[0].fields[0].name).toBe(input1.target);
  16. expect(data[0].rows).toBe(input1.datapoints);
  17. // Default name
  18. expect(data[1].fields[0].name).toEqual('Value');
  19. // Every colun should have a name and a type
  20. for (const table of data) {
  21. for (const column of table.fields) {
  22. expect(column.name).toBeDefined();
  23. expect(column.type).toBeDefined();
  24. }
  25. }
  26. });
  27. it('supports null values from query OK', () => {
  28. expect(getProcessedSeriesData([null, null, null, null])).toEqual([]);
  29. expect(getProcessedSeriesData(undefined)).toEqual([]);
  30. expect(getProcessedSeriesData((null as unknown) as any[])).toEqual([]);
  31. expect(getProcessedSeriesData([])).toEqual([]);
  32. });
  33. });