From 48d040b5792ed0bbdc4aecf5a41c46a6e2025af7 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Tue, 3 May 2016 09:02:19 -0700 Subject: [PATCH] Honor custom label in percentile ranks aggregation --- .../__tests__/metrics/percentile_ranks.js | 40 +++++++++++++++++++ .../agg_types/metrics/percentile_ranks.js | 3 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/ui/public/agg_types/__tests__/metrics/percentile_ranks.js diff --git a/src/ui/public/agg_types/__tests__/metrics/percentile_ranks.js b/src/ui/public/agg_types/__tests__/metrics/percentile_ranks.js new file mode 100644 index 000000000000..048f064dd6ea --- /dev/null +++ b/src/ui/public/agg_types/__tests__/metrics/percentile_ranks.js @@ -0,0 +1,40 @@ +import expect from 'expect.js'; +import ngMock from 'ng_mock'; +import AggTypeMetricPercentileRanksProvider from 'ui/agg_types/metrics/percentile_ranks'; +import VisProvider from 'ui/vis'; +import FixturesStubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern'; + +describe('AggTypeMetricPercentileRanksProvider class', function () { + + let Vis; + let indexPattern; + let aggTypeMetricPercentileRanks; + + beforeEach(ngMock.module('kibana')); + beforeEach(ngMock.inject(function (Private) { + Vis = Private(VisProvider); + indexPattern = Private(FixturesStubbedLogstashIndexPatternProvider); + aggTypeMetricPercentileRanks = Private(AggTypeMetricPercentileRanksProvider); + })); + + it('uses the custom label if it is set', function () { + const vis = new Vis(indexPattern, {}); + + // Grab the aggConfig off the vis (we don't actually use the vis for + // anything else) + const aggConfig = vis.aggs[0]; + aggConfig.params.customLabel = 'my custom field label'; + aggConfig.params.values = [ 5000, 10000 ]; + aggConfig.params.field = { + displayName: 'bytes' + }; + + const responseAggs = aggTypeMetricPercentileRanks.getResponseAggs(aggConfig); + const percentileRankLabelFor5kBytes = responseAggs[0].makeLabel(); + const percentileRankLabelFor10kBytes = responseAggs[1].makeLabel(); + + expect(percentileRankLabelFor5kBytes).to.be('Percentile rank 5,000 of "my custom field label"'); + expect(percentileRankLabelFor10kBytes).to.be('Percentile rank 10,000 of "my custom field label"'); + }); + +}); diff --git a/src/ui/public/agg_types/metrics/percentile_ranks.js b/src/ui/public/agg_types/metrics/percentile_ranks.js index 0ddc449a05ed..4400873b2c62 100644 --- a/src/ui/public/agg_types/metrics/percentile_ranks.js +++ b/src/ui/public/agg_types/metrics/percentile_ranks.js @@ -17,8 +17,9 @@ export default function AggTypeMetricPercentileRanksProvider(Private) { makeLabel: function () { let field = this.field(); let format = (field && field.format) || fieldFormats.getDefaultInstance('number'); + const label = this.params.customLabel || this.fieldDisplayName(); - return 'Percentile rank ' + format.convert(this.key, 'text') + ' of "' + this.fieldDisplayName() + '"'; + return 'Percentile rank ' + format.convert(this.key, 'text') + ' of "' + label + '"'; } };