Transformations: Fix bug with calculate field when using reduce and the all values calculation (#75684)

* fix reduce all fields

* Add test for issue
pull/75671/head
Oscar Kilhed 2 years ago committed by GitHub
parent 27aa1c466a
commit 523cb97aff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      packages/grafana-data/src/transformations/fieldReducer.ts
  2. 27
      packages/grafana-data/src/transformations/transformers/calculateField.test.ts

@ -254,7 +254,7 @@ export const fieldReducers = new Registry<FieldReducerInfo>(() => [
name: 'All values',
description: 'Returns an array with all values',
standard: false,
reduce: (field: Field) => ({ allValues: field.values }),
reduce: (field: Field) => ({ allValues: [...field.values] }),
},
{
id: ReducerID.uniqueValues,

@ -222,6 +222,33 @@ describe('calculateField transformer w/ timeseries', () => {
});
});
it('reduces all field', async () => {
const cfg = {
id: DataTransformerID.calculateField,
options: {
mode: CalculateFieldMode.ReduceRow,
reduce: { include: ['B', 'C'], reducer: ReducerID.allValues },
replaceFields: true,
},
};
await expect(transformDataFrame([cfg], [seriesBC])).toEmitValuesWith((received) => {
const data = received[0];
const filtered = data[0];
const rows = new DataFrameView(filtered).toArray();
expect(rows).toEqual([
{
'All values': [2, 3],
TheTime: 1000,
},
{
'All values': [200, 300],
TheTime: 2000,
},
]);
});
});
it('can add index field', async () => {
const cfg = {
id: DataTransformerID.calculateField,

Loading…
Cancel
Save