1 | import babelPluginTester from 'babel-plugin-tester';
|
2 | import namespacePlugin from '../namespace-plugin';
|
3 |
|
4 | babelPluginTester({
|
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 | });
|