Transformations: Fix Partition by values transform missing refId (#106417)
* Fix partition by values missing refId * have partitioned refID include original refID --------- Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
This commit is contained in:
co-authored by
Kristina Durivage
parent
c8b0fd685b
commit
7fd5121c4f
@@ -35,6 +35,7 @@ describe('Partition by values transformer', () => {
|
||||
|
||||
expect(partitioned[0].length).toEqual(3);
|
||||
expect(partitioned[0].name).toEqual('Europe');
|
||||
expect(partitioned[0].refId).toEqual('A-Europe');
|
||||
expect(partitioned[0].fields[0].name).toEqual('model');
|
||||
expect(partitioned[0].fields[1].name).toEqual('region');
|
||||
expect(partitioned[0].fields[0].values).toEqual(['E1', 'E2', 'E3']);
|
||||
@@ -42,6 +43,7 @@ describe('Partition by values transformer', () => {
|
||||
|
||||
expect(partitioned[1].length).toEqual(3);
|
||||
expect(partitioned[1].name).toEqual('China');
|
||||
expect(partitioned[1].refId).toEqual('A-China');
|
||||
expect(partitioned[1].fields[0].name).toEqual('model');
|
||||
expect(partitioned[1].fields[1].name).toEqual('region');
|
||||
expect(partitioned[1].fields[0].values).toEqual(['C1', 'C2', 'C3']);
|
||||
@@ -75,6 +77,7 @@ describe('Partition by values transformer', () => {
|
||||
|
||||
expect(partitioned[0].length).toEqual(1);
|
||||
expect(partitioned[0].name).toEqual('Europe OK');
|
||||
expect(partitioned[0].refId).toEqual('A-Europe OK');
|
||||
expect(partitioned[0].fields[0].name).toEqual('model');
|
||||
expect(partitioned[0].fields[1].name).toEqual('region');
|
||||
expect(partitioned[0].fields[2].name).toEqual('status');
|
||||
@@ -84,6 +87,7 @@ describe('Partition by values transformer', () => {
|
||||
|
||||
expect(partitioned[1].length).toEqual(2);
|
||||
expect(partitioned[1].name).toEqual('Europe FAIL');
|
||||
expect(partitioned[1].refId).toEqual('A-Europe FAIL');
|
||||
expect(partitioned[1].fields[0].name).toEqual('model');
|
||||
expect(partitioned[1].fields[1].name).toEqual('region');
|
||||
expect(partitioned[1].fields[2].name).toEqual('status');
|
||||
@@ -93,6 +97,7 @@ describe('Partition by values transformer', () => {
|
||||
|
||||
expect(partitioned[2].length).toEqual(2);
|
||||
expect(partitioned[2].name).toEqual('China OK');
|
||||
expect(partitioned[2].refId).toEqual('A-China OK');
|
||||
expect(partitioned[2].fields[0].name).toEqual('model');
|
||||
expect(partitioned[2].fields[1].name).toEqual('region');
|
||||
expect(partitioned[2].fields[2].name).toEqual('status');
|
||||
@@ -102,6 +107,7 @@ describe('Partition by values transformer', () => {
|
||||
|
||||
expect(partitioned[3].length).toEqual(1);
|
||||
expect(partitioned[3].name).toEqual('China FAIL');
|
||||
expect(partitioned[3].refId).toEqual('A-China FAIL');
|
||||
expect(partitioned[3].fields[0].name).toEqual('model');
|
||||
expect(partitioned[3].fields[1].name).toEqual('region');
|
||||
expect(partitioned[3].fields[2].name).toEqual('status');
|
||||
@@ -135,9 +141,16 @@ describe('Partition by values transformer', () => {
|
||||
let partitioned = partitionByValuesTransformer.transformer(config, ctx)(source);
|
||||
|
||||
expect(partitioned[0].name).toEqual('region=Europe status=OK');
|
||||
expect(partitioned[0].refId).toEqual('A-region=Europe status=OK');
|
||||
|
||||
expect(partitioned[1].name).toEqual('region=Europe status=FAIL');
|
||||
expect(partitioned[1].refId).toEqual('A-region=Europe status=FAIL');
|
||||
|
||||
expect(partitioned[2].name).toEqual('region=China status=OK');
|
||||
expect(partitioned[2].refId).toEqual('A-region=China status=OK');
|
||||
|
||||
expect(partitioned[3].name).toEqual('region=China status=FAIL');
|
||||
expect(partitioned[3].refId).toEqual('A-region=China status=FAIL');
|
||||
});
|
||||
|
||||
it('should partition by multiple fields with custom frame naming {append: true}', () => {
|
||||
@@ -165,9 +178,16 @@ describe('Partition by values transformer', () => {
|
||||
let partitioned = partitionByValuesTransformer.transformer(config, ctx)(source);
|
||||
|
||||
expect(partitioned[0].name).toEqual('XYZ Europe OK');
|
||||
expect(partitioned[0].refId).toEqual('A-XYZ Europe OK');
|
||||
|
||||
expect(partitioned[1].name).toEqual('XYZ Europe FAIL');
|
||||
expect(partitioned[1].refId).toEqual('A-XYZ Europe FAIL');
|
||||
|
||||
expect(partitioned[2].name).toEqual('XYZ China OK');
|
||||
expect(partitioned[2].refId).toEqual('A-XYZ China OK');
|
||||
|
||||
expect(partitioned[3].name).toEqual('XYZ China FAIL');
|
||||
expect(partitioned[3].refId).toEqual('A-XYZ China FAIL');
|
||||
});
|
||||
|
||||
it('should partition by multiple fields with custom frame naming {withNames: true, append: true}', () => {
|
||||
@@ -196,9 +216,16 @@ describe('Partition by values transformer', () => {
|
||||
let partitioned = partitionByValuesTransformer.transformer(config, ctx)(source);
|
||||
|
||||
expect(partitioned[0].name).toEqual('XYZ region=Europe status=OK');
|
||||
expect(partitioned[0].refId).toEqual('A-XYZ region=Europe status=OK');
|
||||
|
||||
expect(partitioned[1].name).toEqual('XYZ region=Europe status=FAIL');
|
||||
expect(partitioned[1].refId).toEqual('A-XYZ region=Europe status=FAIL');
|
||||
|
||||
expect(partitioned[2].name).toEqual('XYZ region=China status=OK');
|
||||
expect(partitioned[2].refId).toEqual('A-XYZ region=China status=OK');
|
||||
|
||||
expect(partitioned[3].name).toEqual('XYZ region=China status=FAIL');
|
||||
expect(partitioned[3].refId).toEqual('A-XYZ region=China status=FAIL');
|
||||
});
|
||||
|
||||
it('should partition by multiple fields naming: {asLabels: true}', () => {
|
||||
@@ -230,6 +257,12 @@ describe('Partition by values transformer', () => {
|
||||
expect(partitioned[2].name).toEqual('XYZ');
|
||||
expect(partitioned[3].name).toEqual('XYZ');
|
||||
|
||||
// all frame refIds are same
|
||||
expect(partitioned[0].refId).toEqual('A-XYZ');
|
||||
expect(partitioned[1].refId).toEqual('A-XYZ');
|
||||
expect(partitioned[2].refId).toEqual('A-XYZ');
|
||||
expect(partitioned[3].refId).toEqual('A-XYZ');
|
||||
|
||||
// all frames contain all fields
|
||||
expect(partitioned[0].fields[0].name).toEqual('model');
|
||||
expect(partitioned[0].fields[1].name).toEqual('region');
|
||||
|
||||
@@ -149,6 +149,7 @@ export function partitionByValues(
|
||||
|
||||
return {
|
||||
name: frameName,
|
||||
refId: `${frame.refId}-${frameName}`,
|
||||
meta: frame.meta,
|
||||
length: idxs.length,
|
||||
fields: filteredFields.map((f) => {
|
||||
|
||||
Reference in New Issue
Block a user