[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
This commit is contained in:
mcchrys
2019-07-19 22:20:53 +05:30
committed by Eugenio Romano
parent fc58f1a483
commit 1064b71308
3 changed files with 20 additions and 2 deletions

View File

@@ -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;
});
(<MomentDateAdapter> this.dateAdapter).overrideDisplayFormat = 'MMM DD';

View File

@@ -36,7 +36,7 @@ export class CardViewDateItemModel extends CardViewBaseItemModel implements Card
}
if (cardViewDateItemProperties.locale) {
this.format = cardViewDateItemProperties.locale;
this.locale = cardViewDateItemProperties.locale;
}
}

View File

@@ -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');
});
});