UNPKG

2.71 kBJavaScriptView Raw
1import babelPluginTester from 'babel-plugin-tester';
2import namespacePlugin from '../namespace-plugin';
3
4babelPluginTester({
5 plugin: namespacePlugin,
6 pluginName: 'namespacePlugin',
7 snapshot: false,
8 fixtures: false,
9 babelOptions: {
10 filename: 'foo.js',
11 presets: ['@babel/react'],
12 },
13 tests: {
14 'define messages': {
15 code: `
16 import { defineMessages } from 'react-intl';
17
18 const messages = defineMessages({
19 title: {
20 id: 'title',
21 },
22 body: {
23 id: 'body',
24 },
25 });
26
27 export { messages };
28 `,
29 output: `
30 import { defineMessages } from 'react-intl';
31 const messages = defineMessages({
32 title: {
33 id: '@4c/babel-preset:title',
34 },
35 body: {
36 id: '@4c/babel-preset:body',
37 },
38 });
39 export { messages };
40 `,
41 },
42
43 FormattedMessages: {
44 code: `
45 import { FormattedMessage, FormattedHTMLMessage } from 'react-intl';
46
47 <FormattedMessage id="title" />;
48 <FormattedHTMLMessage id="body" />;
49 `,
50 output: `
51 import { FormattedMessage, FormattedHTMLMessage } from 'react-intl';
52 React.createElement(FormattedMessage, {
53 id: '@4c/babel-preset:title',
54 });
55 React.createElement(FormattedHTMLMessage, {
56 id: '@4c/babel-preset:body',
57 });
58 `,
59 },
60 'intl.formatMessage': {
61 code: `
62 const intl = useIntl()
63
64 intl.formatMessage({
65 id: "title"
66 })
67 `,
68 output: `
69 const intl = useIntl();
70 intl.formatMessage({
71 id: '@4c/babel-preset:title',
72 });
73 `,
74 },
75
76 'provided prefix': {
77 pluginOptions: {
78 prefix: 'cool-pkg',
79 },
80 code: `
81 import { defineMessages } from 'react-intl';
82
83 const messages = defineMessages({
84 title: {
85 id: 'title',
86 },
87 });
88
89 export { messages };
90 `,
91 output: `
92 import { defineMessages } from 'react-intl';
93 const messages = defineMessages({
94 title: {
95 id: 'cool-pkg:title',
96 },
97 });
98 export { messages };
99 `,
100 },
101 'quoted strings': {
102 code: `
103 const intl = useIntl()
104
105 intl.formatMessage({
106 "id": "title"
107 })
108 `,
109 output: `
110 const intl = useIntl();
111 intl.formatMessage({
112 id: '@4c/babel-preset:title',
113 });
114 `,
115 },
116 },
117});