/** * 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']}], }, ], });