From 1064b713087ae506b2ff6924536253a94a0cec7a Mon Sep 17 00:00:00 2001 From: mcchrys <48274621+mcchrys@users.noreply.github.com> Date: Fri, 19 Jul 2019 22:20:53 +0530 Subject: [PATCH] [ADF-4684] Content Metadata Card dates should be localised (#4944) * [ADF-4684] Content Metadata Card dates should be localised * Passed locale param in datePipe * Set default locale value in card-view-dateitem model * Updated property locale in card-view-dateitem component on change in language * * Added test case * * Added unit test case * * Removing locale arg from datepipe --- .../card-view-dateitem.component.ts | 5 ++++- .../card-view/models/card-view-dateitem.model.ts | 2 +- lib/core/pipes/localized-date.pipe.spec.ts | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/core/card-view/components/card-view-dateitem/card-view-dateitem.component.ts b/lib/core/card-view/components/card-view-dateitem/card-view-dateitem.component.ts index df019170ed..6abe22c955 100644 --- a/lib/core/card-view/components/card-view-dateitem/card-view-dateitem.component.ts +++ b/lib/core/card-view/components/card-view-dateitem/card-view-dateitem.component.ts @@ -71,7 +71,10 @@ export class CardViewDateItemComponent implements OnInit, OnDestroy { this.userPreferencesService .select(UserPreferenceValues.Locale) .pipe(takeUntil(this.onDestroy$)) - .subscribe(locale => this.dateAdapter.setLocale(locale)); + .subscribe(locale => { + this.dateAdapter.setLocale(locale); + this.property.locale = locale; + }); ( this.dateAdapter).overrideDisplayFormat = 'MMM DD'; diff --git a/lib/core/card-view/models/card-view-dateitem.model.ts b/lib/core/card-view/models/card-view-dateitem.model.ts index 4df867b0e7..fece09e8ee 100644 --- a/lib/core/card-view/models/card-view-dateitem.model.ts +++ b/lib/core/card-view/models/card-view-dateitem.model.ts @@ -36,7 +36,7 @@ export class CardViewDateItemModel extends CardViewBaseItemModel implements Card } if (cardViewDateItemProperties.locale) { - this.format = cardViewDateItemProperties.locale; + this.locale = cardViewDateItemProperties.locale; } } diff --git a/lib/core/pipes/localized-date.pipe.spec.ts b/lib/core/pipes/localized-date.pipe.spec.ts index 2668c5dbe8..71bf2ab9a7 100644 --- a/lib/core/pipes/localized-date.pipe.spec.ts +++ b/lib/core/pipes/localized-date.pipe.spec.ts @@ -22,6 +22,9 @@ import { UserPreferencesService } from '../services/user-preferences.service'; import { of } from 'rxjs'; import { setupTestBed } from '../testing/setupTestBed'; import { CoreTestingModule } from '../testing/core.testing.module'; +import { registerLocaleData } from '@angular/common'; +import localeFr from '@angular/common/locales/fr'; +registerLocaleData(localeFr); describe('LocalizedDatePipe', () => { @@ -53,4 +56,16 @@ describe('LocalizedDatePipe', () => { expect(pipe.transform(date, 'MMM dd')).toBe('Nov 03'); }); + it('should return time with given locale', () => { + const date = new Date('1990-12-03 00:00'); + const locale = 'fr'; + expect(pipe.transform(date, null, locale)).toBe('3 déc. 1990'); + }); + + it('should return time with given format and locale', () => { + const date = new Date('1990-07-03 00:00'); + const locale = 'fr'; + const format = 'longDate'; + expect(pipe.transform(date, format, locale)).toBe('3 juillet 1990'); + }); });