response_parser.jest.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. import _ from 'lodash';
  2. import ResponseParser from '../response_parser';
  3. describe('influxdb response parser', () => {
  4. const parser = new ResponseParser();
  5. describe('SHOW TAG response', () => {
  6. var query = 'SHOW TAG KEYS FROM "cpu"';
  7. var response = {
  8. results: [
  9. {
  10. series: [
  11. {
  12. name: 'cpu',
  13. columns: ['tagKey'],
  14. values: [['datacenter'], ['hostname'], ['source']],
  15. },
  16. ],
  17. },
  18. ],
  19. };
  20. var result = parser.parse(query, response);
  21. it('expects three results', () => {
  22. expect(_.size(result)).toBe(3);
  23. });
  24. });
  25. describe('SHOW TAG VALUES response', () => {
  26. var query = 'SHOW TAG VALUES FROM "cpu" WITH KEY = "hostname"';
  27. describe('response from 0.10.0', () => {
  28. var response = {
  29. results: [
  30. {
  31. series: [
  32. {
  33. name: 'hostnameTagValues',
  34. columns: ['hostname'],
  35. values: [['server1'], ['server2'], ['server2']],
  36. },
  37. ],
  38. },
  39. ],
  40. };
  41. var result = parser.parse(query, response);
  42. it('should get two responses', () => {
  43. expect(_.size(result)).toBe(2);
  44. expect(result[0].text).toBe('server1');
  45. expect(result[1].text).toBe('server2');
  46. });
  47. });
  48. describe('response from 0.12.0', () => {
  49. var response = {
  50. results: [
  51. {
  52. series: [
  53. {
  54. name: 'cpu',
  55. columns: ['key', 'value'],
  56. values: [['source', 'site'], ['source', 'api']],
  57. },
  58. {
  59. name: 'logins',
  60. columns: ['key', 'value'],
  61. values: [['source', 'site'], ['source', 'webapi']],
  62. },
  63. ],
  64. },
  65. ],
  66. };
  67. var result = parser.parse(query, response);
  68. it('should get two responses', () => {
  69. expect(_.size(result)).toBe(3);
  70. expect(result[0].text).toBe('site');
  71. expect(result[1].text).toBe('api');
  72. expect(result[2].text).toBe('webapi');
  73. });
  74. });
  75. });
  76. describe('SHOW FIELD response', () => {
  77. var query = 'SHOW FIELD KEYS FROM "cpu"';
  78. describe('response from 0.10.0', () => {
  79. var response = {
  80. results: [
  81. {
  82. series: [
  83. {
  84. name: 'measurements',
  85. columns: ['name'],
  86. values: [['cpu'], ['derivative'], ['logins.count'], ['logs'], ['payment.ended'], ['payment.started']],
  87. },
  88. ],
  89. },
  90. ],
  91. };
  92. var result = parser.parse(query, response);
  93. it('should get two responses', () => {
  94. expect(_.size(result)).toBe(6);
  95. });
  96. });
  97. describe('response from 0.11.0', () => {
  98. var response = {
  99. results: [
  100. {
  101. series: [
  102. {
  103. name: 'cpu',
  104. columns: ['fieldKey'],
  105. values: [['value']],
  106. },
  107. ],
  108. },
  109. ],
  110. };
  111. var result = parser.parse(query, response);
  112. it('should get two responses', () => {
  113. expect(_.size(result)).toBe(1);
  114. });
  115. });
  116. });
  117. });