Files
grafana/public/app/plugins/datasource/influxdb/specs/response_parser.jest.ts
2017-11-20 15:25:42 +01:00

143 lines
3.4 KiB
TypeScript

import _ from 'lodash';
import ResponseParser from '../response_parser';
describe('influxdb response parser', () => {
const parser = new ResponseParser();
describe("SHOW TAG response", () => {
var query = 'SHOW TAG KEYS FROM "cpu"';
var response = {
"results": [
{
"series": [
{
"name": "cpu",
"columns": ["tagKey"],
"values": [ ["datacenter"], ["hostname"], ["source"] ]
}
]
}
]
};
var result = parser.parse(query, response);
it("expects three results", () => {
expect(_.size(result)).toBe(3);
});
});
describe("SHOW TAG VALUES response", () => {
var query = 'SHOW TAG VALUES FROM "cpu" WITH KEY = "hostname"';
describe("response from 0.10.0", () => {
var response = {
"results": [
{
"series": [
{
"name": "hostnameTagValues",
"columns": ["hostname"],
"values": [ ["server1"], ["server2"], ["server2"] ]
}
]
}
]
};
var result = parser.parse(query, response);
it("should get two responses", () => {
expect(_.size(result)).toBe(2);
expect(result[0].text).toBe("server1");
expect(result[1].text).toBe("server2");
});
});
describe("response from 0.12.0", () => {
var response = {
"results": [
{
"series": [
{
"name": "cpu",
"columns": [ "key", "value"],
"values": [
[ "source", "site" ],
[ "source", "api" ]
]
},
{
"name": "logins",
"columns": [ "key", "value"],
"values": [
[ "source", "site" ],
[ "source", "webapi"]
]
},
]
}
]
};
var result = parser.parse(query, response);
it("should get two responses", () => {
expect(_.size(result)).toBe(3);
expect(result[0].text).toBe('site');
expect(result[1].text).toBe('api');
expect(result[2].text).toBe('webapi');
});
});
});
describe("SHOW FIELD response", () => {
var query = 'SHOW FIELD KEYS FROM "cpu"';
describe("response from 0.10.0", () => {
var response = {
"results": [
{
"series": [
{
"name": "measurements",
"columns": ["name"],
"values": [
["cpu"], ["derivative"], ["logins.count"], ["logs"], ["payment.ended"], ["payment.started"]
]
}
]
}
]
};
var result = parser.parse(query, response);
it("should get two responses", () => {
expect(_.size(result)).toBe(6);
});
});
describe("response from 0.11.0", () => {
var response = {
"results": [
{
"series": [
{
"name": "cpu",
"columns": ["fieldKey"],
"values": [ [ "value"] ]
}
]
}
]
};
var result = parser.parse(query, response);
it("should get two responses", () => {
expect(_.size(result)).toBe(1);
});
});
});
});