@rockpack/localazer
Version:
This module can help you organize localization in your React application
59 lines (52 loc) • 1.95 kB
text/typescript
import { getDefault, detectBrowserLanguage } from './utils';
describe('getDefault use cases', () => {
test('check getDefault "en" language without locale data', () => {
const lang = 'en';
expect(getDefault(lang))
.toEqual({
// eslint-disable-next-line @typescript-eslint/camelcase
locale_data: {
messages: {
'': {
domain: 'messages',
lang,
// eslint-disable-next-line @typescript-eslint/camelcase
plural_forms: 'nplurals=2; plural=(n != 1);'
}
}
}
});
});
test('check getDefault "en" language with locale data', () => {
const lang = 'ru';
const localeData = {
domain: 'messages',
// eslint-disable-next-line @typescript-eslint/camelcase
locale_data: {
messages: {
'': {
domain: 'messages',
// eslint-disable-next-line @typescript-eslint/camelcase
plural_forms: 'nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);',
lang: 'ru'
},
'Alarm!': ['Ахтунг!'],
'Hello world': ['Привет мир'],
'%d click': ['%d клик', '%d кликов', '%d кликов'],
'Sort By': ['Сортировать по'],
Latest: ['По последнему'],
'Most Popular': ['Самый популярный'],
'Most Viewed': ['Самый просматриваемый'],
'Most Commented': ['Самый комментируемый'],
'USER\u0004Your name is %s and surname is %s': ['Ваше имя %s ваша фамилия %s']
}
}
};
expect(getDefault(lang, localeData))
.toEqual(localeData);
});
});
test('detect browser default language from languages array', () => {
expect(detectBrowserLanguage())
.toBe('en-US');
});