//////////////////////////////////////////////////////////////////////////
//
// pgAdmin 4 - PostgreSQL Tools
//
// Copyright (C) 2013 - 2021, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
//////////////////////////////////////////////////////////////////////////

import gettext from 'sources/gettext';
import translations from 'translations';

describe('translate', function () {
  describe('when there is no translation', function () {
    it('returns the original string', function () {
      expect(gettext('something else to be translated')).toEqual('something' +
        ' else to be translated');
    });

    describe('when there are substitutions', function () {
      it('interpolates a substitution', function () {
        expect(gettext('translate text for %s', 'Sarah')).toEqual('translate text for Sarah');
      });

      it('interpolates multiple substitutions', function () {
        expect(
          gettext('translate \'%s\' for %s', 'constitution', 'Sarah')
        ).toEqual('translate \'constitution\' for Sarah');
      });
    });

  });

  describe('when there is a translation', function () {
    beforeEach(function () {
      translations['something to be translated'] = 'etwas zum uebersetzen';
      translations['another translation for %s'] = 'eine weitere Uebersetzung fuer %s';
    });

    it('returns the translation', function () {
      expect(gettext('something to be translated')).toEqual('etwas zum uebersetzen');
    });

    describe('when there is a substitution', function () {
      it('interpolates the substitution', function () {
        expect(gettext('another translation for %s', 'Sarah'))
          .toEqual('eine weitere Uebersetzung fuer Sarah');
      });
    });
  });
});
