response_parser.jest.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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": [
  57. [ "source", "site" ],
  58. [ "source", "api" ]
  59. ]
  60. },
  61. {
  62. "name": "logins",
  63. "columns": [ "key", "value"],
  64. "values": [
  65. [ "source", "site" ],
  66. [ "source", "webapi"]
  67. ]
  68. },
  69. ]
  70. }
  71. ]
  72. };
  73. var result = parser.parse(query, response);
  74. it("should get two responses", () => {
  75. expect(_.size(result)).toBe(3);
  76. expect(result[0].text).toBe('site');
  77. expect(result[1].text).toBe('api');
  78. expect(result[2].text).toBe('webapi');
  79. });
  80. });
  81. });
  82. describe("SHOW FIELD response", () => {
  83. var query = 'SHOW FIELD KEYS FROM "cpu"';
  84. describe("response from 0.10.0", () => {
  85. var response = {
  86. "results": [
  87. {
  88. "series": [
  89. {
  90. "name": "measurements",
  91. "columns": ["name"],
  92. "values": [
  93. ["cpu"], ["derivative"], ["logins.count"], ["logs"], ["payment.ended"], ["payment.started"]
  94. ]
  95. }
  96. ]
  97. }
  98. ]
  99. };
  100. var result = parser.parse(query, response);
  101. it("should get two responses", () => {
  102. expect(_.size(result)).toBe(6);
  103. });
  104. });
  105. describe("response from 0.11.0", () => {
  106. var response = {
  107. "results": [
  108. {
  109. "series": [
  110. {
  111. "name": "cpu",
  112. "columns": ["fieldKey"],
  113. "values": [ [ "value"] ]
  114. }
  115. ]
  116. }
  117. ]
  118. };
  119. var result = parser.parse(query, response);
  120. it("should get two responses", () => {
  121. expect(_.size(result)).toBe(1);
  122. });
  123. });
  124. });
  125. });