query_builder_specs.ts 2.2 KB

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