at are not allowed to be used in test titles. Matching is not case-sensitive, and looks for complete words: Examples of **incorrect** code when using `disallowedWords`: ```js // with disallowedWords: ['correct', 'all', 'every', 'properly'] describe('the correct way to do things', () => {}); it('has ALL the things', () => {}); xdescribe('every single one of them', () => {}); test(`that the value is set properly`, () => {}); ``` Examples of **correct** code when using `disallowedWords`: ```js // with disallowedWords: ['correct', 'all', 'every', 'properly'] it('correctly sets the value', () => {}); test('that everything is as it should be', () => {}); describe('the proper way to handle things', () => {}); ``` #### `mustMatch` & `mustNotMatch` Defaults: `{}` Allows enforcing that titles must match or must not match a given Regular Expression, with an optional message. An object can be provided to apply different Regular Expressions (with optional messages) to specific Jest test function groups (`describe`, `test`, and `it`). Examples of **incorrect** code when using `mustMatch`: ```js // with mustMatch: '^that' describe('the correct way to do things', () => {}); fit('this there!', () => {}); // with mustMatch: { test: '^that' } describe('the tests that will be run', () => {}); test('the stuff works', () => {}); xtest('errors that are thrown have messages', () => {}); ``` Examples of **correct** code when using `mustMatch`: ```js // with mustMatch: '^that' describe('that thing that needs to be done', () => {}); fit('that this there!', () => {}); // with mustMatch: { test: '^that' } describe('the tests that will be run', () => {}); test('that the stuff works', () => {}); xtest('that errors that thrown have messages', () => {}); ``` Optionally you can provide a custom message to show for a particular matcher by using a tuple at any level where you can provide a matcher: ```js const prefixes = ['when', 'with', 'without', 'if', 'unless', 'for']; const prefixesList = prefixes.join(' - \n'); module.exports = { rules: { 'jest/valid-title': [ 'error', { mustNotMatch: ['\\.$', 'Titles should not end with a full-stop'], mustMatch: { describe: [ new RegExp(`^(?:[A-Z]|\\b(${prefixes.join('|')})\\b`, 'u').source, `Describe titles should either start with a capital letter or one of the following prefixes: ${prefixesList}`, ], test: [/[^A-Z]/u.source], it: /[^A-Z]/u.source, }, }, ], }, }; ```