2017-12-20 12:33:33 +01:00
|
|
|
import _ from 'lodash';
|
|
|
|
|
import ResponseParser from '../response_parser';
|
2017-11-20 15:25:42 +01:00
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
describe('influxdb response parser', () => {
|
2017-11-20 15:25:42 +01:00
|
|
|
const parser = new ResponseParser();
|
|
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
describe('SHOW TAG response', () => {
|
2016-03-23 11:09:57 +01:00
|
|
|
var query = 'SHOW TAG KEYS FROM "cpu"';
|
2016-03-23 15:23:14 +01:00
|
|
|
var response = {
|
2017-12-19 16:06:54 +01:00
|
|
|
results: [
|
2016-03-23 15:23:14 +01:00
|
|
|
{
|
2017-12-19 16:06:54 +01:00
|
|
|
series: [
|
2016-03-23 15:23:14 +01:00
|
|
|
{
|
2017-12-20 12:33:33 +01:00
|
|
|
name: 'cpu',
|
|
|
|
|
columns: ['tagKey'],
|
|
|
|
|
values: [['datacenter'], ['hostname'], ['source']],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
2016-03-23 15:23:14 +01:00
|
|
|
};
|
|
|
|
|
|
2017-11-20 15:25:42 +01:00
|
|
|
var result = parser.parse(query, response);
|
2016-03-23 15:23:14 +01:00
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
it('expects three results', () => {
|
2017-11-20 15:25:42 +01:00
|
|
|
expect(_.size(result)).toBe(3);
|
2016-03-23 11:09:57 +01:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
describe('SHOW TAG VALUES response', () => {
|
2016-03-23 11:09:57 +01:00
|
|
|
var query = 'SHOW TAG VALUES FROM "cpu" WITH KEY = "hostname"';
|
|
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
describe('response from 0.10.0', () => {
|
2016-03-22 20:23:27 +01:00
|
|
|
var response = {
|
2017-12-19 16:06:54 +01:00
|
|
|
results: [
|
2016-03-22 20:23:27 +01:00
|
|
|
{
|
2017-12-19 16:06:54 +01:00
|
|
|
series: [
|
2016-03-22 20:23:27 +01:00
|
|
|
{
|
2017-12-20 12:33:33 +01:00
|
|
|
name: 'hostnameTagValues',
|
|
|
|
|
columns: ['hostname'],
|
|
|
|
|
values: [['server1'], ['server2'], ['server2']],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
2016-03-22 20:23:27 +01:00
|
|
|
};
|
|
|
|
|
|
2017-11-20 15:25:42 +01:00
|
|
|
var result = parser.parse(query, response);
|
2016-03-22 20:23:27 +01:00
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
it('should get two responses', () => {
|
2017-11-20 15:25:42 +01:00
|
|
|
expect(_.size(result)).toBe(2);
|
2017-12-20 12:33:33 +01:00
|
|
|
expect(result[0].text).toBe('server1');
|
|
|
|
|
expect(result[1].text).toBe('server2');
|
2016-03-22 20:23:27 +01:00
|
|
|
});
|
|
|
|
|
});
|
2016-03-22 22:43:55 +01:00
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
describe('response from 0.12.0', () => {
|
2016-03-22 22:43:55 +01:00
|
|
|
var response = {
|
2017-12-19 16:06:54 +01:00
|
|
|
results: [
|
|
|
|
|
{
|
|
|
|
|
series: [
|
|
|
|
|
{
|
2017-12-20 12:33:33 +01:00
|
|
|
name: 'cpu',
|
|
|
|
|
columns: ['key', 'value'],
|
|
|
|
|
values: [['source', 'site'], ['source', 'api']],
|
2017-12-19 16:06:54 +01:00
|
|
|
},
|
|
|
|
|
{
|
2017-12-20 12:33:33 +01:00
|
|
|
name: 'logins',
|
|
|
|
|
columns: ['key', 'value'],
|
|
|
|
|
values: [['source', 'site'], ['source', 'webapi']],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
2016-03-22 22:43:55 +01:00
|
|
|
};
|
|
|
|
|
|
2017-11-20 15:25:42 +01:00
|
|
|
var result = parser.parse(query, response);
|
2016-03-22 22:43:55 +01:00
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
it('should get two responses', () => {
|
2017-11-20 15:25:42 +01:00
|
|
|
expect(_.size(result)).toBe(3);
|
2017-12-20 12:33:33 +01:00
|
|
|
expect(result[0].text).toBe('site');
|
|
|
|
|
expect(result[1].text).toBe('api');
|
|
|
|
|
expect(result[2].text).toBe('webapi');
|
2016-03-22 22:43:55 +01:00
|
|
|
});
|
|
|
|
|
});
|
2016-03-22 20:23:27 +01:00
|
|
|
});
|
|
|
|
|
|
2018-01-29 16:46:51 +01:00
|
|
|
describe('SELECT response', () => {
|
|
|
|
|
var query = 'SELECT "usage_iowait" FROM "cpu" LIMIT 10';
|
|
|
|
|
var response = {
|
|
|
|
|
results: [
|
|
|
|
|
{
|
|
|
|
|
series: [
|
|
|
|
|
{
|
|
|
|
|
name: 'cpu',
|
|
|
|
|
columns: ['time', 'usage_iowait'],
|
|
|
|
|
values: [[1488465190006040638, 0.0], [1488465190006040638, 15.0], [1488465190006040638, 20.2]],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var result = parser.parse(query, response);
|
|
|
|
|
|
|
|
|
|
it('should return second column', () => {
|
|
|
|
|
expect(_.size(result)).toBe(3);
|
2018-02-01 14:55:03 +01:00
|
|
|
expect(result[0].text).toBe('0');
|
|
|
|
|
expect(result[1].text).toBe('15');
|
|
|
|
|
expect(result[2].text).toBe('20.2');
|
2018-01-29 16:46:51 +01:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
describe('SHOW FIELD response', () => {
|
2016-03-23 11:09:57 +01:00
|
|
|
var query = 'SHOW FIELD KEYS FROM "cpu"';
|
2018-01-29 16:46:51 +01:00
|
|
|
|
|
|
|
|
describe('response from pre-1.0', () => {
|
2016-03-22 20:23:27 +01:00
|
|
|
var response = {
|
2017-12-19 16:06:54 +01:00
|
|
|
results: [
|
2016-03-22 20:23:27 +01:00
|
|
|
{
|
2017-12-19 16:06:54 +01:00
|
|
|
series: [
|
2016-03-22 20:23:27 +01:00
|
|
|
{
|
2018-01-29 16:46:51 +01:00
|
|
|
name: 'cpu',
|
|
|
|
|
columns: ['fieldKey'],
|
|
|
|
|
values: [['value']],
|
2017-12-20 12:33:33 +01:00
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
2016-03-22 20:23:27 +01:00
|
|
|
};
|
|
|
|
|
|
2017-11-20 15:25:42 +01:00
|
|
|
var result = parser.parse(query, response);
|
2018-01-29 16:46:51 +01:00
|
|
|
|
2017-12-20 12:33:33 +01:00
|
|
|
it('should get two responses', () => {
|
2018-01-29 16:46:51 +01:00
|
|
|
expect(_.size(result)).toBe(1);
|
2016-03-22 20:23:27 +01:00
|
|
|
});
|
|
|
|
|
});
|
2016-03-22 22:43:55 +01:00
|
|
|
|
2018-01-29 16:46:51 +01:00
|
|
|
describe('response from 1.0', () => {
|
2016-03-22 22:43:55 +01:00
|
|
|
var response = {
|
2017-12-19 16:06:54 +01:00
|
|
|
results: [
|
2016-03-22 22:43:55 +01:00
|
|
|
{
|
2017-12-19 16:06:54 +01:00
|
|
|
series: [
|
2016-03-22 22:43:55 +01:00
|
|
|
{
|
2017-12-20 12:33:33 +01:00
|
|
|
name: 'cpu',
|
2018-01-29 16:46:51 +01:00
|
|
|
columns: ['fieldKey', 'fieldType'],
|
|
|
|
|
values: [['time', 'float']],
|
2017-12-20 12:33:33 +01:00
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
2016-03-22 22:43:55 +01:00
|
|
|
};
|
|
|
|
|
|
2017-11-20 15:25:42 +01:00
|
|
|
var result = parser.parse(query, response);
|
2016-03-22 22:43:55 +01:00
|
|
|
|
2018-01-29 16:46:51 +01:00
|
|
|
it('should return first column', () => {
|
2017-11-20 15:25:42 +01:00
|
|
|
expect(_.size(result)).toBe(1);
|
2018-01-29 16:46:51 +01:00
|
|
|
expect(result[0].text).toBe('time');
|
2016-03-22 22:43:55 +01:00
|
|
|
});
|
|
|
|
|
});
|
2016-03-22 20:23:27 +01:00
|
|
|
});
|
|
|
|
|
});
|