[APM] Fix asPercent (#28826) (#28870)

This commit is contained in:
Søren Louv-Jansen 2019-01-16 23:15:51 +01:00 committed by Oliver Gupte
parent 11ced0f26f
commit 936e2ee27c
4 changed files with 13 additions and 10 deletions

View file

@ -29,7 +29,7 @@ export function CPUUsageChart({ data, hoverXHandlers }: Props) {
noHits={data.totalHits === 0}
series={data.series}
tickFormatY={(y: number | null) => `${(y || 0) * 100}%`}
formatTooltipValue={(c: Coordinate) => asPercent(c.y || 0)}
formatTooltipValue={(c: Coordinate) => asPercent(c.y || 0, 1)}
yMax={1}
/>
</React.Fragment>

View file

@ -137,28 +137,28 @@ export function getCPUSeries(CPUChartResponse: MetricsChartAPIResponse['cpu']) {
data: series.systemCPUMax,
type: 'linemark',
color: colors.apmBlue,
legendValue: asPercent(overallValues.systemCPUMax || 0)
legendValue: asPercent(overallValues.systemCPUMax || 0, 1)
},
{
title: 'System average',
data: series.systemCPUAverage,
type: 'linemark',
color: colors.apmGreen,
legendValue: asPercent(overallValues.systemCPUAverage || 0)
legendValue: asPercent(overallValues.systemCPUAverage || 0, 1)
},
{
title: 'Process max',
data: series.processCPUMax,
type: 'linemark',
color: colors.apmOrange,
legendValue: asPercent(overallValues.processCPUMax || 0)
legendValue: asPercent(overallValues.processCPUMax || 0, 1)
},
{
title: 'Process average',
data: series.processCPUAverage,
type: 'linemark',
color: colors.apmYellow,
legendValue: asPercent(overallValues.processCPUAverage || 0)
legendValue: asPercent(overallValues.processCPUAverage || 0, 1)
}
];

View file

@ -33,8 +33,12 @@ describe('formatters', () => {
expect(asPercent(3725, 10000, 'n/a')).toEqual('37.25%');
});
it('should format given number as percent when only one argument given', () => {
expect(asPercent(0.3725)).toEqual('37.25%');
it('should format when numerator is 0', () => {
expect(asPercent(0, 1, 'n/a')).toEqual('0.00%');
});
it('should return fallback when denominator is undefined', () => {
expect(asPercent(3725, undefined, 'n/a')).toEqual('n/a');
});
it('should return fallback when denominator is 0 ', () => {

View file

@ -139,11 +139,10 @@ export function asPercent(
denominator?: number,
fallbackResult = ''
) {
if (denominator === 0) {
if (!denominator) {
return fallbackResult;
}
const decimal = denominator ? numerator / denominator : numerator;
const decimal = numerator / denominator;
return numeral(decimal).format('0.00%');
}