diff --git a/packages/grafana-data/src/valueFormats/dateTimeFormatters.test.ts b/packages/grafana-data/src/valueFormats/dateTimeFormatters.test.ts index 07d1e642ed0..ea5aaff036b 100644 --- a/packages/grafana-data/src/valueFormats/dateTimeFormatters.test.ts +++ b/packages/grafana-data/src/valueFormats/dateTimeFormatters.test.ts @@ -12,6 +12,7 @@ import { toDurationInHoursMinutesSeconds, toDurationInDaysHoursMinutesSeconds, toNanoSeconds, + toSeconds, } from './dateTimeFormatters'; import { formattedValueToString } from './valueFormats'; import { toUtc, dateTime } from '../datetime/moment_wrapper'; @@ -331,3 +332,11 @@ describe('to nanoseconds', () => { expect(tenDays.suffix).toBe(' day'); }); }); + +describe('seconds', () => { + it('should show 0 as 0', () => { + const zeroSeconds = toSeconds(0); + expect(zeroSeconds.text).toBe('0'); + expect(zeroSeconds.suffix).toBe(' s'); + }); +}); diff --git a/packages/grafana-data/src/valueFormats/dateTimeFormatters.ts b/packages/grafana-data/src/valueFormats/dateTimeFormatters.ts index 1afda3b4c2d..da7a66475f6 100644 --- a/packages/grafana-data/src/valueFormats/dateTimeFormatters.ts +++ b/packages/grafana-data/src/valueFormats/dateTimeFormatters.ts @@ -103,6 +103,11 @@ export function toSeconds(size: number, decimals?: DecimalCount, scaledDecimals? return { text: '' }; } + // If 0, use s unit instead of ns + if (size === 0) { + return { text: '0', suffix: ' s' }; + } + // Less than 1 µs, divide in ns if (Math.abs(size) < 0.000001) { return toFixedScaled(size * 1e9, decimals, trySubstract(scaledDecimals, decimals), -9, ' ns');