influxQueryBuilder-specs.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. define([
  2. 'plugins/datasource/influxdb_08/queryBuilder'
  3. ], function(InfluxQueryBuilder) {
  4. 'use strict';
  5. describe('InfluxQueryBuilder', function() {
  6. describe('series with conditon and group by', function() {
  7. var builder = new InfluxQueryBuilder({
  8. series: 'google.test',
  9. column: 'value',
  10. function: 'mean',
  11. condition: "code=1",
  12. groupby_field: 'code'
  13. });
  14. var query = builder.build();
  15. it('should generate correct query', function() {
  16. expect(query).to.be('select code, mean(value) from "google.test" where $timeFilter and code=1 ' +
  17. 'group by time($interval), code order asc');
  18. });
  19. it('should expose groupByFiled', function() {
  20. expect(builder.groupByField).to.be('code');
  21. });
  22. });
  23. describe('series with fill and minimum group by time', function() {
  24. var builder = new InfluxQueryBuilder({
  25. series: 'google.test',
  26. column: 'value',
  27. function: 'mean',
  28. fill: '0',
  29. });
  30. var query = builder.build();
  31. it('should generate correct query', function() {
  32. expect(query).to.be('select mean(value) from "google.test" where $timeFilter ' +
  33. 'group by time($interval) fill(0) order asc');
  34. });
  35. });
  36. describe('merge function detection', function() {
  37. it('should not quote wrap regex merged series', function() {
  38. var builder = new InfluxQueryBuilder({
  39. series: 'merge(/^google.test/)',
  40. column: 'value',
  41. function: 'mean'
  42. });
  43. var query = builder.build();
  44. expect(query).to.be('select mean(value) from merge(/^google.test/) where $timeFilter ' +
  45. 'group by time($interval) order asc');
  46. });
  47. it('should quote wrap series names that start with "merge"', function() {
  48. var builder = new InfluxQueryBuilder({
  49. series: 'merge.google.test',
  50. column: 'value',
  51. function: 'mean'
  52. });
  53. var query = builder.build();
  54. expect(query).to.be('select mean(value) from "merge.google.test" where $timeFilter ' +
  55. 'group by time($interval) order asc');
  56. });
  57. });
  58. });
  59. });