DataFrame: toDataFrame( ...) should support the query response payload (#40594)

pull/40845/head
Ryan McKinley 4 years ago committed by GitHub
parent f496c31018
commit aeb868bb06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 42
      packages/grafana-data/src/dataframe/processDataFrame.test.ts
  2. 4
      packages/grafana-data/src/dataframe/processDataFrame.ts

@ -174,6 +174,48 @@ describe('toDataFrame', () => {
expect(v0.length).toEqual(1); expect(v0.length).toEqual(1);
expect(v0.get(0)).toEqual(input1.datapoints[0]); expect(v0.get(0)).toEqual(input1.datapoints[0]);
}); });
it('converts JSON response to dataframes', () => {
const msg = {
schema: {
fields: [
{
name: 'First',
type: 'string',
},
{
name: 'Second',
type: 'number',
},
],
},
data: {
values: [
['2019-02-15', '2019-03-15', '2019-04-15'],
[3, 9, 16],
],
},
};
const dataFrame = toDataFrame(msg);
expect(dataFrame.fields.map((f) => ({ [f.name]: f.values.toArray() }))).toMatchInlineSnapshot(`
Array [
Object {
"First": Array [
"2019-02-15",
"2019-03-15",
"2019-04-15",
],
},
Object {
"Second": Array [
3,
9,
16,
],
},
]
`);
});
}); });
describe('SeriesData backwards compatibility', () => { describe('SeriesData backwards compatibility', () => {

@ -25,6 +25,7 @@ import { ArrayDataFrame } from './ArrayDataFrame';
import { getFieldDisplayName } from '../field/fieldState'; import { getFieldDisplayName } from '../field/fieldState';
import { fieldIndexComparer } from '../field/fieldComparers'; import { fieldIndexComparer } from '../field/fieldComparers';
import { vectorToArray } from '../vector/vectorToArray'; import { vectorToArray } from '../vector/vectorToArray';
import { dataFrameFromJSON } from './DataFrameJSON';
function convertTableToDataFrame(table: TableData): DataFrame { function convertTableToDataFrame(table: TableData): DataFrame {
const fields = table.columns.map((c) => { const fields = table.columns.map((c) => {
@ -302,6 +303,9 @@ export function toDataFrame(data: any): DataFrame {
} }
if (data.hasOwnProperty('data')) { if (data.hasOwnProperty('data')) {
if (data.hasOwnProperty('schema')) {
return dataFrameFromJSON(data);
}
return convertGraphSeriesToDataFrame(data); return convertGraphSeriesToDataFrame(data);
} }

Loading…
Cancel
Save