Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/i18n / dist / init.spec.js
Size: Mime:
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _init = require("./init");

var _utils = require("./utils");

var _cookie = _interopRequireDefault(require("./cookie"));

jest.mock('./cookie');
describe('I18n Initialisation', () => {
  test('getNavigatorLocale', () => {
    Object.defineProperty(window.navigator, 'language', {
      value: 'fr-FR',
      configurable: true
    });
    const navigatorLocale = (0, _utils.getNavigatorLocale)();
    expect(navigatorLocale).toEqual('fr-FR');
  });
  test('normalizeLocale', () => {
    expect((0, _utils.normalizeLocale)('fr_FR')).toEqual('fr-FR');
  });
  test('getLanguageCodeFromLocale', () => {
    expect((0, _utils.getLanguageCodeFromLocale)('fr-FR')).toEqual('fr');
  });
  test('getLocale defaults to `en`', async () => {
    const supportedLocales = ['en', 'de'];
    const locale = await (0, _init.getLocale)(supportedLocales);
    expect(locale).toEqual('en');
  });
  test('getLocale uses the cookie locale first', async () => {
    _cookie.default.get.mockReturnValue('de');

    Object.defineProperty(window.navigator, 'language', {
      value: 'fr-FR',
      configurable: true
    });
    const supportedLocales = ['en', 'de'];
    const locale = await (0, _init.getLocale)(supportedLocales);
    expect(locale).toEqual('de');
  });
  test('getLocale uses the navigator locale if there is no cookie', async () => {
    jest.resetAllMocks();
    Object.defineProperty(window.navigator, 'language', {
      value: 'fr-FR',
      configurable: true
    });
    const supportedLocales = ['en', 'de', 'fr'];
    const locale = await (0, _init.getLocale)(supportedLocales);
    expect(locale).toEqual('fr');
  });
  test('getLocale uses a supported language if there is no cookie', async () => {
    jest.resetAllMocks();
    Object.defineProperty(window.navigator, 'language', {
      value: 'en_GB',
      configurable: true
    });
    const supportedLocales = ['en', 'en-GB', 'fr'];
    const locale = await (0, _init.getLocale)(supportedLocales);
    expect(locale).toEqual('en-GB');
  });
});
//# sourceMappingURL=init.spec.js.map