UNPKG

@prezly/theme-kit-core

Version:

Data layer and utility library for developing Prezly themes with JavaScript

44 lines 2.24 kB
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('العربية'); }); }); });