response_parser_specs.ts 3.5 KB

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