datasource.jest.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import InfluxDatasource from '../datasource';
  2. import $q from 'q';
  3. import { TemplateSrvStub } from 'test/specs/helpers';
  4. describe('InfluxDataSource', () => {
  5. let ctx: any = {
  6. backendSrv: {},
  7. $q: $q,
  8. templateSrv: new TemplateSrvStub(),
  9. instanceSettings: { url: 'url', name: 'influxDb', jsonData: {} },
  10. };
  11. beforeEach(function() {
  12. ctx.instanceSettings.url = '/api/datasources/proxy/1';
  13. ctx.ds = new InfluxDatasource(ctx.instanceSettings, ctx.$q, ctx.backendSrv, ctx.templateSrv);
  14. });
  15. describe('When issuing metricFindQuery', () => {
  16. let query = 'SELECT max(value) FROM measurement WHERE $timeFilter';
  17. let queryOptions: any = {
  18. range: {
  19. from: '2018-01-01T00:00:00Z',
  20. to: '2018-01-02T00:00:00Z',
  21. },
  22. };
  23. let requestQuery;
  24. beforeEach(async () => {
  25. ctx.backendSrv.datasourceRequest = function(req) {
  26. requestQuery = req.params.q;
  27. return ctx.$q.when({
  28. results: [
  29. {
  30. series: [
  31. {
  32. name: 'measurement',
  33. columns: ['max'],
  34. values: [[1]],
  35. },
  36. ],
  37. },
  38. ],
  39. });
  40. };
  41. await ctx.ds.metricFindQuery(query, queryOptions).then(function(_) {});
  42. });
  43. it('should replace $timefilter', () => {
  44. expect(requestQuery).toMatch('time >= 1514764800000ms and time <= 1514851200000ms');
  45. });
  46. });
  47. });