diff --git a/__tests__/helpers/locale/locale.test.ts b/__tests__/helpers/locale/locale.test.ts index e9f0dab8a..8f484f6a8 100644 --- a/__tests__/helpers/locale/locale.test.ts +++ b/__tests__/helpers/locale/locale.test.ts @@ -195,13 +195,18 @@ describe('Locale Tests', () => { describe('formatMinutesForLocale', () => { it('Should format minutes only.', () => { mockMDHLanguage = "en-US"; - const result = formatMinutesForLocale(45); - expect(result).toBe("45m"); + expect(formatMinutesForLocale(45.4)).toBe("45m"); + expect(formatMinutesForLocale(45.5)).toBe("46m"); + }); + it('Should format hours only.', () => { + mockMDHLanguage = "en-US"; + expect(formatMinutesForLocale(119.5)).toBe("2h"); + expect(formatMinutesForLocale(120.4)).toBe("2h"); }); it('Should format hours/minutes.', () => { mockMDHLanguage = "en-US"; - const result = formatMinutesForLocale(94); - expect(result).toBe("1h 34m"); + expect(formatMinutesForLocale(94.4)).toBe("1h 34m"); + expect(formatMinutesForLocale(94.5)).toBe("1h 35m"); }); it('Should format by locale.', () => { mockMDHLanguage = "de-DE"; diff --git a/src/helpers/locale.ts b/src/helpers/locale.ts index 5a3405c30..c089a3a65 100644 --- a/src/helpers/locale.ts +++ b/src/helpers/locale.ts @@ -137,12 +137,19 @@ export function formatNumberForLocale(value: number | undefined, fractionDigits? /** e.g., 7h 5m */ export function formatMinutesForLocale(value: number) { - var hours = Math.floor(value / 60); - var displayValue = hours > 0 ? (`${hours}${language("hours-abbreviation")} `) : ""; - if (Math.round(value - (hours * 60)) !== 0) { - displayValue = `${displayValue}${(Math.round(value - (hours * 60)))}${language("minutes-abbreviation")}`; + const totalMinutes = Math.round(value); + + const displayHours = Math.floor(totalMinutes / 60); + const displayMinutes = totalMinutes % 60; + + const displayParts = []; + if (displayHours !== 0) { + displayParts.push(`${displayHours}${language('hours-abbreviation')}`); + } + if (displayMinutes !== 0) { + displayParts.push(`${displayMinutes}${language('minutes-abbreviation')}`); } - return displayValue; + return displayParts.join(' '); } export function capitalizeFirstLetterForLocale(str: string) {