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 / src / onesky / diff.spec.js
Size: Mime:
const { getAddedKeys, getChangedKeys, getRenamedKeys, getDeletedKeys, updateMessages } = require('./diff');

const sourceMessages = {
  'recipe.favorite.name': 'Boozy Baked French Toast',
  'recipe.dish3.name': 'French Onion Soup',
  'recipe.dish4.name': 'Spinach and Cheese Strata',
  'recipe.dish5.name': 'Pasta al Pomodoro',
};
const baseMessages = {
  'recipe.dish1.name': 'Boozy Baked French Toast',
  'recipe.dish2.name': 'Eggs in Marinara Sauce',
  'recipe.dish3.name': 'Tomato Soup',
};

describe('Message modifications', () => {
  test('getAddedKeys', () => {
    const keys = getAddedKeys(sourceMessages, baseMessages);
    expect(keys).toEqual(['recipe.dish4.name', 'recipe.dish5.name']);
  });

  test('getChangedKeys', () => {
    const keys = getChangedKeys(sourceMessages, baseMessages);
    expect(keys).toEqual(['recipe.dish3.name']);
  });

  test('getRenamedKeys', () => {
    const keys = getRenamedKeys(sourceMessages, baseMessages);
    expect(keys).toEqual([['recipe.dish1.name', 'recipe.favorite.name']]);
  });

  test('getDeletedKeys', () => {
    const keys = getDeletedKeys(sourceMessages, baseMessages);
    expect(keys).toEqual(['recipe.dish2.name']);
  });

  test('updateMessages', () => {
    const germanMessages = {
      'recipe.dish1.name': 'Boozy Baked French Toast',
      'recipe.dish2.name': 'Eggs in Marinara Sauce',
      'recipe.dish3.name': 'Tomato Soup',
    };

    const transformedGermanMessages = updateMessages(germanMessages, {
      added: [['recipe.dish4.name', 'Käse Spinat Auflauf'], ['recipe.dish5.name', 'Pasta al Pomodoro']],
      changed: [['recipe.dish3.name', 'Französische Zwiebelsuppe']],
      renamed: [['recipe.dish1.name', 'recipe.favorite.name']],
      deleted: ['recipe.dish2.name'],
    });

    expect(transformedGermanMessages).toEqual({
      'recipe.dish3.name': 'Französische Zwiebelsuppe',
      'recipe.dish4.name': 'Käse Spinat Auflauf',
      'recipe.dish5.name': 'Pasta al Pomodoro',
      'recipe.favorite.name': 'Boozy Baked French Toast',
    });
  });
});