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('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); expect(result[0].text).toBe(0.0); expect(result[1].text).toBe(15.0); expect(result[2].text).toBe(20.2); }); }); 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); }); }); }); });