response_parser.jest.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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('SELECT response', () => {
  77. var query = 'SELECT "usage_iowait" FROM "cpu" LIMIT 10';
  78. var response = {
  79. results: [
  80. {
  81. series: [
  82. {
  83. name: 'cpu',
  84. columns: ['time', 'usage_iowait'],
  85. values: [[1488465190006040638, 0.0], [1488465190006040638, 15.0], [1488465190006040638, 20.2]],
  86. },
  87. ],
  88. },
  89. ],
  90. };
  91. var result = parser.parse(query, response);
  92. it('should return second column', () => {
  93. expect(_.size(result)).toBe(3);
  94. expect(result[0].text).toBe(0.0);
  95. expect(result[1].text).toBe(15.0);
  96. expect(result[2].text).toBe(20.2);
  97. });
  98. });
  99. describe('SHOW FIELD response', () => {
  100. var query = 'SHOW FIELD KEYS FROM "cpu"';
  101. describe('response from 0.10.0', () => {
  102. var response = {
  103. results: [
  104. {
  105. series: [
  106. {
  107. name: 'measurements',
  108. columns: ['name'],
  109. values: [['cpu'], ['derivative'], ['logins.count'], ['logs'], ['payment.ended'], ['payment.started']],
  110. },
  111. ],
  112. },
  113. ],
  114. };
  115. var result = parser.parse(query, response);
  116. it('should get two responses', () => {
  117. expect(_.size(result)).toBe(6);
  118. });
  119. });
  120. describe('response from 0.11.0', () => {
  121. var response = {
  122. results: [
  123. {
  124. series: [
  125. {
  126. name: 'cpu',
  127. columns: ['fieldKey'],
  128. values: [['value']],
  129. },
  130. ],
  131. },
  132. ],
  133. };
  134. var result = parser.parse(query, response);
  135. it('should get two responses', () => {
  136. expect(_.size(result)).toBe(1);
  137. });
  138. });
  139. });
  140. });