2021-03-05 14:24:43 -06:00
|
|
|
import { FieldType } from '../types/dataFrame';
|
2021-03-15 14:16:40 -05:00
|
|
|
import { DataFrameJSON } from './DataFrameJSON';
|
2021-03-05 14:24:43 -06:00
|
|
|
import { StreamingDataFrame } from './StreamingDataFrame';
|
|
|
|
|
|
|
|
describe('Streaming JSON', () => {
|
|
|
|
describe('when called with a DataFrame', () => {
|
|
|
|
it('should decode values not supported natively in JSON (e.g. NaN, Infinity)', () => {
|
|
|
|
const json: DataFrameJSON = {
|
|
|
|
schema: {
|
|
|
|
fields: [
|
|
|
|
{ name: 'time', type: FieldType.time },
|
|
|
|
{ name: 'name', type: FieldType.string },
|
|
|
|
{ name: 'value', type: FieldType.number },
|
|
|
|
],
|
|
|
|
},
|
|
|
|
data: {
|
|
|
|
values: [
|
|
|
|
[100, 200, 300],
|
|
|
|
['a', 'b', 'c'],
|
|
|
|
[1, 2, 3],
|
|
|
|
],
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2021-03-15 14:16:40 -05:00
|
|
|
const stream = new StreamingDataFrame(json);
|
2021-03-05 14:24:43 -06:00
|
|
|
expect(stream.fields.map((f) => ({ name: f.name, value: f.values.buffer }))).toMatchInlineSnapshot(`
|
|
|
|
Array [
|
|
|
|
Object {
|
|
|
|
"name": "time",
|
|
|
|
"value": Array [
|
|
|
|
100,
|
|
|
|
200,
|
|
|
|
300,
|
|
|
|
],
|
|
|
|
},
|
|
|
|
Object {
|
|
|
|
"name": "name",
|
|
|
|
"value": Array [
|
|
|
|
"a",
|
|
|
|
"b",
|
|
|
|
"c",
|
|
|
|
],
|
|
|
|
},
|
|
|
|
Object {
|
|
|
|
"name": "value",
|
|
|
|
"value": Array [
|
|
|
|
1,
|
|
|
|
2,
|
|
|
|
3,
|
|
|
|
],
|
|
|
|
},
|
|
|
|
]
|
|
|
|
`);
|
|
|
|
|
|
|
|
stream.update({
|
|
|
|
data: {
|
|
|
|
values: [[400], ['d'], [4]],
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
expect(stream.fields.map((f) => ({ name: f.name, value: f.values.buffer }))).toMatchInlineSnapshot(`
|
|
|
|
Array [
|
|
|
|
Object {
|
|
|
|
"name": "time",
|
|
|
|
"value": Array [
|
|
|
|
100,
|
|
|
|
200,
|
|
|
|
300,
|
|
|
|
400,
|
|
|
|
],
|
|
|
|
},
|
|
|
|
Object {
|
|
|
|
"name": "name",
|
|
|
|
"value": Array [
|
|
|
|
"a",
|
|
|
|
"b",
|
|
|
|
"c",
|
|
|
|
"d",
|
|
|
|
],
|
|
|
|
},
|
|
|
|
Object {
|
|
|
|
"name": "value",
|
|
|
|
"value": Array [
|
|
|
|
1,
|
|
|
|
2,
|
|
|
|
3,
|
|
|
|
4,
|
|
|
|
],
|
|
|
|
},
|
|
|
|
]
|
|
|
|
`);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|