stoat-for-desktop/js-lingui-solid/packages/babel-plugin-lingui-macro/test/js-defineMessage.test.ts

104 lines
2.8 KiB
TypeScript

import { macroTester } from "./macroTester"
macroTester({
cases: [
{
name: "defineMessage should support template literal",
code: `
import { defineMessage } from '@lingui/core/macro';
const message = defineMessage\`Message\`
`,
},
{
name: "defineMessage can be called by alias `msg`",
code: `
import { msg } from '@lingui/core/macro';
const message1 = msg\`Message\`
const message2 = msg({message: "Message"})
`,
},
{
name: "should expand macros in message property",
code: `
import { defineMessage, plural, arg } from '@lingui/core/macro';
const message = defineMessage({
comment: "Description",
message: plural(value, { one: "book", other: "books" })
})
`,
},
{
name: "defineMessage macro could be renamed",
code: `
import { defineMessage as defineMessage2, plural as plural2 } from '@lingui/core/macro';
const message = defineMessage2({
comment: "Description",
message: plural2(value, { one: "book", other: "books" })
})
`,
},
{
name: "should left string message intact",
code: `
import { defineMessage } from '@lingui/core/macro';
const message = defineMessage({
message: "Message"
})
`,
},
{
name: "should transform template literals",
code: `
import { defineMessage } from '@lingui/core/macro';
const message = defineMessage({
message: \`Message \${name}\`
})
`,
},
{
name: "should preserve custom id",
code: `
import { defineMessage } from '@lingui/core/macro';
const message = defineMessage({
id: "msg.id",
message: "Message"
})
`,
},
{
name: "Production - only essential props are kept, without id",
production: true,
code: `
import { defineMessage } from '@lingui/core/macro';
const msg = defineMessage({
message: \`Hello $\{name\}\`,
comment: 'description for translators',
context: 'My Context',
})
`,
},
{
name: "Production - only essential props are kept",
production: true,
code: `
import { defineMessage } from '@lingui/core/macro';
const msg = defineMessage({
message: \`Hello $\{name\}\`,
id: 'msgId',
comment: 'description for translators',
context: 'My Context',
})
`,
},
{
name: "should preserve values",
code: `
import { defineMessage, t } from '@lingui/core/macro';
const message = defineMessage({
message: t\`Hello $\{name\}\`
})
`,
},
],
})