From 2d68cf991680d7a71ac0f2b8fadd2a629c0375cf Mon Sep 17 00:00:00 2001 From: Michaela <85624192+mkrbr@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:39:58 +0100 Subject: [PATCH] [AAE-39261] Fix Portuguese date format to display dd/mm/yyyy (#11303) - Added support for 'pt' locale code in DateFnsUtils.getLocaleFromString() - Both 'pt' and 'pt-BR' now correctly map to ptBR locale (dd/mm/yyyy format) - Added comprehensive test coverage for all locale mappings using data-driven tests - Fixed naming conflict by aliasing Italian locale import Co-authored-by: Fabian Kindgen <39992669+fkindgen@users.noreply.github.com> --- .../lib/common/utils/date-fns-utils.spec.ts | 41 +++++++++++++++++++ .../src/lib/common/utils/date-fns-utils.ts | 1 + 2 files changed, 42 insertions(+) diff --git a/lib/core/src/lib/common/utils/date-fns-utils.spec.ts b/lib/core/src/lib/common/utils/date-fns-utils.spec.ts index 0a7d06e67a..9287044eb3 100644 --- a/lib/core/src/lib/common/utils/date-fns-utils.spec.ts +++ b/lib/core/src/lib/common/utils/date-fns-utils.spec.ts @@ -16,9 +16,50 @@ */ import { addMinutes, isValid } from 'date-fns'; +import { ar, cs, da, de, enUS, es, fi, fr, it as italian, ja, nb, nl, pl, ptBR, ru, sv, zhCN } from 'date-fns/locale'; import { DateFnsUtils } from './date-fns-utils'; describe('DateFnsUtils', () => { + describe('getLocaleFromString', () => { + const localeTestCases = [ + { localeCode: 'ar', expectedLocale: ar, description: 'Arabic' }, + { localeCode: 'cs', expectedLocale: cs, description: 'Czech' }, + { localeCode: 'da', expectedLocale: da, description: 'Danish' }, + { localeCode: 'de', expectedLocale: de, description: 'German' }, + { localeCode: 'en', expectedLocale: enUS, description: 'English (US)' }, + { localeCode: 'es', expectedLocale: es, description: 'Spanish' }, + { localeCode: 'fi', expectedLocale: fi, description: 'Finnish' }, + { localeCode: 'fr', expectedLocale: fr, description: 'French' }, + { localeCode: 'it', expectedLocale: italian, description: 'Italian' }, + { localeCode: 'ja', expectedLocale: ja, description: 'Japanese' }, + { localeCode: 'nb', expectedLocale: nb, description: 'Norwegian Bokmål' }, + { localeCode: 'nl', expectedLocale: nl, description: 'Dutch' }, + { localeCode: 'pl', expectedLocale: pl, description: 'Polish' }, + { localeCode: 'pt', expectedLocale: ptBR, description: 'Portuguese' }, + { localeCode: 'pt-BR', expectedLocale: ptBR, description: 'Portuguese (Brazilian)' }, + { localeCode: 'ru', expectedLocale: ru, description: 'Russian' }, + { localeCode: 'sv', expectedLocale: sv, description: 'Swedish' }, + { localeCode: 'zh-CN', expectedLocale: zhCN, description: 'Chinese (Simplified)' } + ]; + + localeTestCases.forEach(({ localeCode, expectedLocale, description }) => { + it(`should return ${description} locale for '${localeCode}' locale code`, () => { + const locale = DateFnsUtils.getLocaleFromString(localeCode); + expect(locale).toBe(expectedLocale); + }); + }); + + it('should return enUS locale for unknown locale code', () => { + const locale = DateFnsUtils.getLocaleFromString('unknown'); + expect(locale).toBe(enUS); + }); + + it('should return enUS locale for empty string', () => { + const locale = DateFnsUtils.getLocaleFromString(''); + expect(locale).toBe(enUS); + }); + }); + describe('convertMomentToDateFnsFormat', () => { it('should convert moment date format', () => { const dateFnsFormat = DateFnsUtils.convertMomentToDateFnsFormat('YYYY-MM-DD'); diff --git a/lib/core/src/lib/common/utils/date-fns-utils.ts b/lib/core/src/lib/common/utils/date-fns-utils.ts index e5fab19337..c19ceeda9b 100644 --- a/lib/core/src/lib/common/utils/date-fns-utils.ts +++ b/lib/core/src/lib/common/utils/date-fns-utils.ts @@ -69,6 +69,7 @@ export class DateFnsUtils { case 'pl': dateFnsLocale = pl; break; + case 'pt': case 'pt-BR': dateFnsLocale = ptBR; break;