/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import rule from '../no-untranslated-text';
import {getCommonValidTests, RuleTester} from './testUtils';
const errorsJSX = [{messageId: 'translateChildren'}] as const;
const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaFeatures: {
jsx: true,
},
},
});
ruleTester.run('no-untranslated-text', rule, {
valid: [
...getCommonValidTests(),
{
code: '·',
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: '· ',
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: ' · ',
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: '· ·',
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: '· — ×',
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: '{"·"}',
options: [{ignoredStrings: ['·']}],
},
{
code: "{'·'}",
options: [{ignoredStrings: ['·']}],
},
{
code: '{`·`}',
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: 'Docusaurus',
options: [{ignoredStrings: ['Docusaurus']}],
},
{
code: '',
options: [{ignoredStrings: ['']}],
},
{
code: `<>
{' · '}
>`,
options: [{ignoredStrings: ['·']}],
},
],
invalid: [
{
code: 'text',
errors: errorsJSX,
},
{
code: ' text ',
errors: errorsJSX,
},
{
code: '"text"',
errors: errorsJSX,
},
{
code: "'text'",
errors: errorsJSX,
},
{
code: '`text`',
errors: errorsJSX,
},
{
code: '{"text"}',
errors: errorsJSX,
},
{
code: "{'text'}",
errors: errorsJSX,
},
{
code: '{`text`}',
errors: errorsJSX,
},
{
code: '<>text>',
errors: errorsJSX,
},
{
code: '· — ×',
errors: errorsJSX,
options: [{ignoredStrings: ['·', '—']}],
},
{
code: '··',
errors: errorsJSX,
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: ' ·· ',
errors: errorsJSX,
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: '"·"',
errors: errorsJSX,
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: "'·'",
errors: errorsJSX,
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: '`·`',
errors: errorsJSX,
options: [{ignoredStrings: ['·', '—', '×']}],
},
{
code: 'Docusaurus',
errors: errorsJSX,
options: [{ignoredStrings: ['Docu', 'saurus']}],
},
],
});