| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import {
- getLanguageDictionary,
- getLanguagesDictionaries,
- registerLanguageDictionary,
- hasLanguageDictionary,
- DEFAULT_LANGUAGE_CODE
- } from 'handsontable/i18n/dictionariesManager';
- import plPL from 'handsontable/i18n/languages/pl-PL';
- import enUS from 'handsontable/i18n/languages/en-US';
- import * as constants from 'handsontable/i18n/constants';
- describe('i18n dictionariesManager', () => {
- it('should register automatically default language', () => {
- const allLanguages = getLanguagesDictionaries();
- const defaultLanguageIsRegistered = allLanguages.some(dictionary => dictionary.languageCode === DEFAULT_LANGUAGE_CODE);
- expect(defaultLanguageIsRegistered).toEqual(true);
- });
- it('should not register automatically imported /src languages', () => {
- expect(hasLanguageDictionary(plPL.languageCode)).toEqual(false);
- });
- it('should return `null` when trying to get not registered language', () => {
- expect(getLanguageDictionary(plPL.languageCode)).toEqual(null);
- });
- it('should register language', () => {
- // Note: please keep in mind that this language will be registered also for next unit tests (within this file)!
- // It's stored globally for already loaded Handsontable library.
- registerLanguageDictionary(plPL);
- expect(getLanguagesDictionaries().length).toEqual(2);
- });
- it('should register language only once', () => {
- registerLanguageDictionary(plPL);
- registerLanguageDictionary(plPL);
- registerLanguageDictionary(enUS);
- registerLanguageDictionary(enUS);
- expect(getLanguagesDictionaries().length).toEqual(2);
- });
- it('should not give opportunity to change registered language by reference', () => {
- const registeredLanguageDictionary1 = registerLanguageDictionary(plPL);
- const registeredLanguageDictionary2 = registerLanguageDictionary(plPL);
- registeredLanguageDictionary1.newExtraKey1 = 'hello world1';
- registeredLanguageDictionary2.newExtraKey2 = 'hello world2';
- expect(getLanguageDictionary(plPL.languageCode).newExtraKey).toBeUndefined();
- expect(getLanguageDictionary(plPL.languageCode).newExtraKey2).toBeUndefined();
- expect(registeredLanguageDictionary1).not.toBe(plPL);
- expect(registeredLanguageDictionary2).not.toBe(plPL);
- expect(registeredLanguageDictionary1).not.toBe(registeredLanguageDictionary2);
- plPL.newExtraKey3 = 'hello world3';
- expect(getLanguageDictionary(plPL.languageCode).newExtraKey3).toBeUndefined();
- delete plPL.newExtraKey3;
- });
- it('should return `true` when checking existence of previously registered language', () => {
- expect(hasLanguageDictionary(plPL.languageCode)).toEqual(true);
- });
- it('should return `true` when checking existence of default language', () => {
- expect(hasLanguageDictionary(DEFAULT_LANGUAGE_CODE)).toEqual(true);
- });
- it('should return copy of registered dictionary when getting previously registered language', () => {
- expect(getLanguageDictionary(plPL.languageCode)).toEqual(plPL);
- expect(getLanguageDictionary(plPL.languageCode)).not.toBe(plPL);
- });
- it('should extend registered language by default language dictionary', () => {
- const defaultLanguageDictionary = getLanguageDictionary(DEFAULT_LANGUAGE_CODE);
- const dictionaryKey1 = constants.CONTEXTMENU_ITEMS_ROW_ABOVE;
- const dictionaryKey2 = constants.CONTEXTMENU_ITEMS_COLUMN_RIGHT;
- const registeredLanguage = registerLanguageDictionary({
- languageCode: 'kl-PU',
- [dictionaryKey1]: 'Hello world'
- });
- expect(registeredLanguage[dictionaryKey1]).toEqual('Hello world');
- expect(registeredLanguage[dictionaryKey2]).toEqual(defaultLanguageDictionary[dictionaryKey2]);
- });
- });
|