/** * 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. */ const rule = require('../no-untranslated-text'); const {RuleTester} = require('eslint'); const {getCommonValidTests} = require('../../util'); const errorsJSX = [{messageId: 'translateChildren', type: 'JSXElement'}]; const errorsJSXFragment = [ {messageId: 'translateChildren', type: 'JSXFragment'}, ]; const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 2022, ecmaFeatures: {jsx: true}, }, }); ruleTester.run('no-untranslated-text', rule, { valid: [ ...getCommonValidTests(), { code: '·', options: [{ignoreStrings: ['·', '—', '×']}], }, { code: '· ', options: [{ignoreStrings: ['·', '—', '×']}], }, { code: ' · ', options: [{ignoreStrings: ['·', '—', '×']}], }, { code: '· ·', options: [{ignoreStrings: ['·', '—', '×']}], }, { code: '· — ×', options: [{ignoreStrings: ['·', '—', '×']}], }, { code: '{"·"}', options: [{ignoreStrings: ['·']}], }, { code: "{'·'}", options: [{ignoreStrings: ['·']}], }, { code: '{`·`}', options: [{ignoreStrings: ['·', '—', '×']}], }, { code: 'Docusaurus', options: [{ignoreStrings: ['Docusaurus']}], }, { code: '', options: [{ignoreStrings: ['​']}], }, { code: `<> {' · '} `, options: [{ignoreStrings: ['·', "'"]}], }, ], 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: errorsJSXFragment, }, { code: '· — ×', errors: errorsJSX, options: [{ignoreStrings: ['·', '—']}], }, { code: '··', errors: errorsJSX, options: [{ignoreStrings: ['·', '—', '×']}], }, { code: ' ·· ', errors: errorsJSX, options: [{ignoreStrings: ['·', '—', '×']}], }, { code: '"·"', errors: errorsJSX, options: [{ignoreStrings: ['·', '—', '×']}], }, { code: "'·'", errors: errorsJSX, options: [{ignoreStrings: ['·', '—', '×']}], }, { code: '`·`', errors: errorsJSX, options: [{ignoreStrings: ['·', '—', '×']}], }, { code: 'Docusaurus', errors: errorsJSX, options: [{ignoreStrings: ['Docu', 'saurus']}], }, ], });