influxdb-datasource-specs.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. define([
  2. './helpers',
  3. 'app/plugins/datasource/influxdb_08/datasource',
  4. 'app/services/backendSrv',
  5. 'app/services/alertSrv'
  6. ], function(helpers) {
  7. 'use strict';
  8. describe('InfluxDatasource', function() {
  9. var ctx = new helpers.ServiceTestContext();
  10. beforeEach(module('grafana.services'));
  11. beforeEach(ctx.providePhase(['templateSrv']));
  12. beforeEach(ctx.createService('InfluxDatasource_08'));
  13. beforeEach(function() {
  14. ctx.ds = new ctx.service({ url: '', user: 'test', password: 'mupp' });
  15. });
  16. describe('When querying influxdb with one target using query editor target spec', function() {
  17. var results;
  18. var urlExpected = "/series?p=mupp&q=select+mean(value)+from+%22test%22"+
  19. "+where+time+%3E+now()-1h+group+by+time(1s)+order+asc";
  20. var query = {
  21. rangeRaw: { from: 'now-1h', to: 'now' },
  22. targets: [{ series: 'test', column: 'value', function: 'mean' }],
  23. interval: '1s'
  24. };
  25. var response = [{
  26. columns: ["time", "sequence_nr", "value"],
  27. name: 'test',
  28. points: [[10, 1, 1]],
  29. }];
  30. beforeEach(function() {
  31. ctx.$httpBackend.expect('GET', urlExpected).respond(response);
  32. ctx.ds.query(query).then(function(data) { results = data; });
  33. ctx.$httpBackend.flush();
  34. });
  35. it('should generate the correct query', function() {
  36. ctx.$httpBackend.verifyNoOutstandingExpectation();
  37. });
  38. it('should return series list', function() {
  39. expect(results.data.length).to.be(1);
  40. expect(results.data[0].target).to.be('test.value');
  41. });
  42. });
  43. describe('When querying influxdb with one raw query', function() {
  44. var results;
  45. var urlExpected = "/series?p=mupp&q=select+value+from+series"+
  46. "+where+time+%3E+now()-1h";
  47. var query = {
  48. rangeRaw: { from: 'now-1h', to: 'now' },
  49. targets: [{ query: "select value from series where $timeFilter", rawQuery: true }]
  50. };
  51. var response = [];
  52. beforeEach(function() {
  53. ctx.$httpBackend.expect('GET', urlExpected).respond(response);
  54. ctx.ds.query(query).then(function(data) { results = data; });
  55. ctx.$httpBackend.flush();
  56. });
  57. it('should generate the correct query', function() {
  58. ctx.$httpBackend.verifyNoOutstandingExpectation();
  59. });
  60. });
  61. describe('When issuing annotation query', function() {
  62. var results;
  63. var urlExpected = "/series?p=mupp&q=select+title+from+events.backend_01"+
  64. "+where+time+%3E+now()-1h";
  65. var range = { from: 'now-1h', to: 'now' };
  66. var annotation = { query: 'select title from events.$server where $timeFilter' };
  67. var response = [];
  68. beforeEach(function() {
  69. ctx.templateSrv.replace = function(str) {
  70. return str.replace('$server', 'backend_01');
  71. };
  72. ctx.$httpBackend.expect('GET', urlExpected).respond(response);
  73. ctx.ds.annotationQuery(annotation, range).then(function(data) { results = data; });
  74. ctx.$httpBackend.flush();
  75. });
  76. it('should generate the correct query', function() {
  77. ctx.$httpBackend.verifyNoOutstandingExpectation();
  78. });
  79. });
  80. });
  81. });