44 lines
1002 B
JavaScript
44 lines
1002 B
JavaScript
![]() |
import { createDateTimeFormat, languageCode } from '~/locale';
|
||
|
|
||
|
const setLanguage = (languageCode) => {
|
||
|
const htmlElement = document.querySelector('html');
|
||
|
|
||
|
if (languageCode) {
|
||
|
htmlElement.setAttribute('lang', languageCode);
|
||
|
} else {
|
||
|
htmlElement.removeAttribute('lang');
|
||
|
}
|
||
|
};
|
||
|
|
||
|
describe('locale', () => {
|
||
|
afterEach(() => {
|
||
|
setLanguage(null);
|
||
|
});
|
||
|
|
||
|
describe('languageCode', () => {
|
||
|
it('parses the lang attribute', () => {
|
||
|
setLanguage('ja');
|
||
|
|
||
|
expect(languageCode()).toBe('ja');
|
||
|
});
|
||
|
|
||
|
it('falls back to English', () => {
|
||
|
setLanguage(null);
|
||
|
|
||
|
expect(languageCode()).toBe('en');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('createDateTimeFormat', () => {
|
||
|
beforeEach(() => {
|
||
|
setLanguage('de');
|
||
|
});
|
||
|
|
||
|
it('creates an instance of Intl.DateTimeFormat', () => {
|
||
|
const dateFormat = createDateTimeFormat({ year: 'numeric', month: 'long', day: 'numeric' });
|
||
|
|
||
|
expect(dateFormat.format(new Date(2015, 6, 3))).toBe('3. Juli 2015');
|
||
|
});
|
||
|
});
|
||
|
});
|