@prezly/theme-kit-core
Version:
Data layer and utility library for developing Prezly themes with JavaScript
44 lines • 2.24 kB
JavaScript
import { LANGUAGES } from "../__mocks__/languages.mjs";
import { getLanguageDisplayName } from "./getLanguageDisplayName.mjs";
describe('getLanguageDisplayName', () => {
describe('with languages as input', () => {
it('should return shortened name when language is the only culture', () => {
var languages = [LANGUAGES.en, LANGUAGES.fr];
expect(getLanguageDisplayName(LANGUAGES.en, languages)).toBe('English');
expect(getLanguageDisplayName(LANGUAGES.fr, languages)).toBe('Français');
});
it('should return full name when language is NOT the only culture', () => {
var languages = [LANGUAGES.nl_BE, LANGUAGES.nl_NL];
expect(getLanguageDisplayName(LANGUAGES.nl_BE, languages)).toBe('Nederlands (België)');
expect(getLanguageDisplayName(LANGUAGES.nl_NL, languages)).toBe('Nederlands (Nederland)');
});
it('should properly cut region from an RTL language name', () => {
var languages = [{
locale: {
code: 'ar_AE',
native_name: 'العربية (الإمارات العربية المتحدة)'
}
}];
expect(getLanguageDisplayName(languages[0], languages)).toBe('العربية');
});
});
describe('with locales as input', () => {
it('should return shortened name when language is the only culture', () => {
var locales = [LANGUAGES.en.locale, LANGUAGES.fr.locale];
expect(getLanguageDisplayName(LANGUAGES.en.locale, locales)).toBe('English');
expect(getLanguageDisplayName(LANGUAGES.fr.locale, locales)).toBe('Français');
});
it('should return full name when language is NOT the only culture', () => {
var locales = [LANGUAGES.nl_BE.locale, LANGUAGES.nl_NL.locale];
expect(getLanguageDisplayName(LANGUAGES.nl_BE.locale, locales)).toBe('Nederlands (België)');
expect(getLanguageDisplayName(LANGUAGES.nl_NL.locale, locales)).toBe('Nederlands (Nederland)');
});
it('should properly cut region from an RTL language name', () => {
var locales = [{
code: 'ar_AE',
native_name: 'العربية (الإمارات العربية المتحدة)'
}];
expect(getLanguageDisplayName(locales[0], locales)).toBe('العربية');
});
});
});