InputDatasource.test.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import InputDatasource, { describeDataFrame } from './InputDatasource';
  2. import { InputQuery, InputOptions } from './types';
  3. import { readCSV, DataFrame, DataFrameHelper } from '@grafana/data';
  4. import { DataSourceInstanceSettings, PluginMeta } from '@grafana/ui';
  5. import { getQueryOptions } from 'test/helpers/getQueryOptions';
  6. describe('InputDatasource', () => {
  7. const data = readCSV('a,b,c\n1,2,3\n4,5,6');
  8. const instanceSettings: DataSourceInstanceSettings<InputOptions> = {
  9. id: 1,
  10. type: 'x',
  11. name: 'xxx',
  12. meta: {} as PluginMeta,
  13. jsonData: {
  14. data,
  15. },
  16. };
  17. describe('when querying', () => {
  18. test('should return the saved data with a query', () => {
  19. const ds = new InputDatasource(instanceSettings);
  20. const options = getQueryOptions<InputQuery>({
  21. targets: [{ refId: 'Z' }],
  22. });
  23. return ds.query(options).then(rsp => {
  24. expect(rsp.data.length).toBe(1);
  25. const series: DataFrame = rsp.data[0];
  26. expect(series.refId).toBe('Z');
  27. expect(series.fields[0].values).toEqual(data[0].fields[0].values);
  28. });
  29. });
  30. });
  31. test('DataFrame descriptions', () => {
  32. expect(describeDataFrame([])).toEqual('');
  33. expect(describeDataFrame(null)).toEqual('');
  34. expect(
  35. describeDataFrame([
  36. new DataFrameHelper({
  37. name: 'x',
  38. fields: [{ name: 'a' }],
  39. }),
  40. ])
  41. ).toEqual('1 Fields, 0 Rows');
  42. });
  43. });