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 / src / onesky / extract.spec.js
Size: Mime:
import globby from 'globby';
import * as babel from '@babel/core';

import { extractDefaultMessagesFromFile, extractDefaultMessages } from './extract';

jest.mock('globby');
jest.mock('@babel/core');

describe('Message definition extraction', () => {
  test('extractDefaultMessagesFromFile', async () => {
    const reactIntlMetadata = { messages: [{ id: 'key', defaultMessage: 'value' }] };
    babel.transformFile.mockImplementation((_, __, cb) => {
      cb(null, { metadata: { 'react-intl': reactIntlMetadata } });
    });

    const messages = await extractDefaultMessagesFromFile('i18n/en.json');
    expect(messages).toEqual({ key: 'value' });
  });

  test('extractDefaultMessages', async () => {
    const reactIntlMetadata = { messages: [{ id: 'title', defaultMessage: 'widget' }] };
    babel.transformFile.mockImplementation((_, __, cb) => {
      cb(null, { metadata: { 'react-intl': reactIntlMetadata } });
    });
    globby.mockResolvedValue(['src/components/widget/messages.js']);

    const messages = await extractDefaultMessages('src/**/messages.js');
    expect(messages).toEqual({ title: 'widget' });
  });
});