Repository URL to install this package:
|
Version:
5.0.0-rc.9 ▾
|
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' });
});
});