mirror of https://github.com/grafana/grafana
parent
2d59112c1b
commit
53312852e9
@ -0,0 +1,23 @@ |
||||
///<reference path="../../../headers/common.d.ts" />
|
||||
|
||||
import _ from 'lodash'; |
||||
|
||||
export default class ResponseParser { |
||||
parse(queryType, results) { |
||||
if (!results || results.results.length === 0) { return []; } |
||||
|
||||
var influxResults = results.results[0]; |
||||
if (!influxResults.series) { |
||||
return []; |
||||
} |
||||
|
||||
var series = influxResults.series[0]; |
||||
return _.map(series.values, function(value) { |
||||
if (_.isArray(value)) { |
||||
return { text: value[0] }; |
||||
} else { |
||||
return { text: value }; |
||||
} |
||||
}); |
||||
} |
||||
} |
@ -0,0 +1,58 @@ |
||||
import _ from 'lodash'; |
||||
import {describe, beforeEach, it, sinon, expect} from 'test/lib/common'; |
||||
import ResponseParser from '../response_parser'; |
||||
|
||||
describe.only("influxdb response parser", () => { |
||||
describe("SHOW_TAGS response", () => { |
||||
this.parser = new ResponseParser(); |
||||
|
||||
describe("response from 0.10.0", () => { |
||||
var response = { |
||||
"results": [ |
||||
{ |
||||
"series": [ |
||||
{ |
||||
"name": "hostnameTagValues", |
||||
"columns": ["hostname"], |
||||
"values": [ ["server1"], ["server2"] ] |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}; |
||||
|
||||
var result = this.parser.parse('SHOW_TAGS', response); |
||||
|
||||
it("should get two responses", () => { |
||||
expect(_.size(result)).to.be(2); |
||||
expect(result[0].text).to.be("server1"); |
||||
expect(result[1].text).to.be("server2"); |
||||
}); |
||||
}); |
||||
}); |
||||
|
||||
describe("SHOW_FIELDS response", () => { |
||||
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 = this.parser.parse('SHOW_FIELDS', response); |
||||
it("should get two responses", () => { |
||||
expect(_.size(result)).to.be(6); |
||||
}); |
||||
}); |
||||
}); |
||||
}); |
Loading…
Reference in new issue