UNPKG

eslint-plugin-detect-bad-words

Version:
129 lines (121 loc) 2.45 kB
'use strict' export {} // eslint-disable-next-line const rule = require('../../lib/rules/in-code') import { RuleTester } from 'eslint' import { buildErrorMessage } from '../../lib/util' const parserOptions = { ecmaVersion: 2018, sourceType: 'module', ecmaFeatures: { jsx: true, }, } const settings = { customBadWords: ['tite', 'fck'], } const ruleTester = new RuleTester({ parserOptions, settings }) const defaultErrors = (word: string) => [{ message: buildErrorMessage(word) }] ruleTester.run('detect-bad-words-in-code', rule, { valid: [ { code: "'Awesome string'" }, { code: '<h1> Awesome string </h1>' }, { code: "let b = 'subtite'" }, { code: ` <AwesomeComponent statusCode={202} title="My title" /> `, }, { code: "const temp = ''" }, { code: 'class Temp {}' }, { code: '{temp: 1}' }, ], invalid: [ // words from badwords package { code: "'bitch'", errors: defaultErrors('bitch'), }, { code: "'BITCH'", errors: defaultErrors('BITCH'), }, { code: "'Tittie5'", errors: defaultErrors('Tittie5'), }, { code: "'hey BITCH'", errors: defaultErrors('BITCH'), }, // identifiers { code: "const bitch = ''", errors: defaultErrors('bitch'), }, { code: 'class Bitch {}', errors: defaultErrors('Bitch'), }, { code: '{ bitch: 1 }', errors: defaultErrors('bitch'), }, { code: ` var bitch = { ass: 1 }; `, errors: [ { message: buildErrorMessage('bitch') }, { message: buildErrorMessage('ass') }, ], }, { code: ` { bitch: 1 } `, errors: defaultErrors('bitch'), }, // custom bad words { code: "'fck'", errors: defaultErrors('fck'), }, { code: "'fck?'", errors: defaultErrors('fck'), }, { code: "'me fck'", errors: defaultErrors('fck'), }, { code: "const a = 'tite'", errors: defaultErrors('tite'), }, { code: '<div> tite </div>', errors: defaultErrors('tite'), }, { code: ` <div> hey tite </div> `, errors: defaultErrors('tite'), }, { code: "'me FCK'", errors: defaultErrors('FCK'), }, ], })