response_parser.jest.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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: [
  87. ["cpu"],
  88. ["derivative"],
  89. ["logins.count"],
  90. ["logs"],
  91. ["payment.ended"],
  92. ["payment.started"]
  93. ]
  94. }
  95. ]
  96. }
  97. ]
  98. };
  99. var result = parser.parse(query, response);
  100. it("should get two responses", () => {
  101. expect(_.size(result)).toBe(6);
  102. });
  103. });
  104. describe("response from 0.11.0", () => {
  105. var response = {
  106. results: [
  107. {
  108. series: [
  109. {
  110. name: "cpu",
  111. columns: ["fieldKey"],
  112. values: [["value"]]
  113. }
  114. ]
  115. }
  116. ]
  117. };
  118. var result = parser.parse(query, response);
  119. it("should get two responses", () => {
  120. expect(_.size(result)).toBe(1);
  121. });
  122. });
  123. });
  124. });