From 0e35c8bdb415d8bf12d5d11735162fad95138ab2 Mon Sep 17 00:00:00 2001 From: Kristina Date: Fri, 20 Jun 2025 16:33:29 -0500 Subject: [PATCH] Transformations: Ignore value displayName for columns for matrix grouping (#106647) * Ignore value displayName for columns for matrix grouping * Fix spelling --- .../transformers/groupingToMatrix.test.ts | 46 +++++++++++++++++++ .../transformers/groupingToMatrix.ts | 5 +- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/packages/grafana-data/src/transformations/transformers/groupingToMatrix.test.ts b/packages/grafana-data/src/transformations/transformers/groupingToMatrix.test.ts index cba642d8340..e23c1ebf456 100644 --- a/packages/grafana-data/src/transformations/transformers/groupingToMatrix.test.ts +++ b/packages/grafana-data/src/transformations/transformers/groupingToMatrix.test.ts @@ -226,6 +226,52 @@ describe('Grouping to Matrix', () => { }); }); + it('properly handles the value display name (by ignoring it)', async () => { + const cfg: DataTransformerConfig = { + id: DataTransformerID.groupingToMatrix, + options: { + columnField: 'Column', + rowField: 'Row', + valueField: 'CustomName', + }, + }; + + const seriesA = toDataFrame({ + name: 'A', + fields: [ + { name: 'Column', type: FieldType.string, values: ['C1', 'C1', 'C2'] }, + { name: 'Row', type: FieldType.string, values: ['R1', 'R2', 'R1'] }, + { name: 'Temp', type: FieldType.number, values: [1, 4, 5], config: { displayName: 'CustomName' } }, + ], + }); + + await expect(transformDataFrame([cfg], [seriesA])).toEmitValuesWith((received) => { + const processed = received[0]; + const expected: Field[] = [ + { + name: 'Row\\Column', + type: FieldType.string, + values: ['R1', 'R2'], + config: {}, + }, + { + name: 'C1', + type: FieldType.number, + values: [1, 4], + config: {}, + }, + { + name: 'C2', + type: FieldType.number, + values: [5, ''], + config: {}, + }, + ]; + + expect(processed[0].fields).toEqual(expected); + }); + }); + it('generates Matrix with multiple fields and value type', async () => { const cfg: DataTransformerConfig = { id: DataTransformerID.groupingToMatrix, diff --git a/packages/grafana-data/src/transformations/transformers/groupingToMatrix.ts b/packages/grafana-data/src/transformations/transformers/groupingToMatrix.ts index d39a64cfdce..3415590d64b 100644 --- a/packages/grafana-data/src/transformations/transformers/groupingToMatrix.ts +++ b/packages/grafana-data/src/transformations/transformers/groupingToMatrix.ts @@ -60,7 +60,7 @@ export const groupingToMatrixTransformer: DataTransformerInfo (source) => source.pipe( @@ -126,6 +126,9 @@ export const groupingToMatrixTransformer: DataTransformerInfo