mirror of https://github.com/grafana/grafana.git
64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
import {
|
|
getNameFromRecord,
|
|
getTableModelFromResult,
|
|
getTimeSeriesFromResult,
|
|
parseResults,
|
|
parseValue,
|
|
} from '../response_parser';
|
|
import response from './sample_response_csv';
|
|
|
|
describe('influxdb ifql response parser', () => {
|
|
describe('parseResults()', () => {
|
|
it('expects three results', () => {
|
|
const results = parseResults(response);
|
|
expect(results.length).toBe(2);
|
|
});
|
|
});
|
|
|
|
describe('getTableModelFromResult()', () => {
|
|
it('expects a table model', () => {
|
|
const results = parseResults(response);
|
|
const table = getTableModelFromResult(results[0]);
|
|
expect(table.columns.length).toBe(6);
|
|
expect(table.rows.length).toBe(300);
|
|
});
|
|
});
|
|
|
|
describe('getTimeSeriesFromResult()', () => {
|
|
it('expects time series', () => {
|
|
const results = parseResults(response);
|
|
const series = getTimeSeriesFromResult(results[0]);
|
|
expect(series.length).toBe(50);
|
|
expect(series[0].datapoints.length).toBe(6);
|
|
});
|
|
});
|
|
|
|
describe('getNameFromRecord()', () => {
|
|
it('expects name based on measurements and tags', () => {
|
|
const record = {
|
|
'': '',
|
|
result: '',
|
|
table: '0',
|
|
_start: '2018-06-02T06:35:25.651942602Z',
|
|
_stop: '2018-06-02T07:35:25.651942602Z',
|
|
_time: '2018-06-02T06:35:31Z',
|
|
_value: '0',
|
|
_field: 'usage_guest',
|
|
_measurement: 'cpu',
|
|
cpu: 'cpu-total',
|
|
host: 'kenobi-3.local',
|
|
};
|
|
expect(getNameFromRecord(record)).toBe('cpu usage_guest cpu=cpu-total host=kenobi-3.local');
|
|
});
|
|
});
|
|
|
|
describe('parseValue()', () => {
|
|
it('parses a number', () => {
|
|
expect(parseValue('42.3')).toBe(42.3);
|
|
});
|
|
it('parses a non-number to null', () => {
|
|
expect(parseValue('foo')).toBe(null);
|
|
});
|
|
});
|
|
});
|