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 / extract.spec.js
Size: Mime:
const globby = require('globby');
const babel = require('babel-core');

const { extractDefaultMessagesFromFile, extractDefaultMessages } = require('./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' });
  });
});