From 426f01aeceae2a9bbddacf1ce217ee4b26e458a8 Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Sun, 14 Nov 2021 22:02:58 -0500 Subject: [PATCH] Add test that ensures each rule doc has `Pass` / `Fail` code sample sections (#1610) --- test/package.mjs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/package.mjs b/test/package.mjs index 2b7386b6e8..c03bf8941d 100644 --- a/test/package.mjs +++ b/test/package.mjs @@ -66,6 +66,10 @@ const MESSAGES = { hasSuggestions: '💡 *This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).*', }; +const RULES_WITHOUT_PASS_FAIL_SECTIONS = new Set([ + 'filename-case', // Doesn't show code samples since it's just focused on filenames. +]); + test('Every rule is defined in index file in alphabetical order', t => { for (const file of ruleFiles) { const name = path.basename(file, '.js'); @@ -195,6 +199,12 @@ test('Every rule has a doc with the appropriate content', t => { const expectedTitle = `# ${ruleDescriptionToDocumentTitle(rule.meta.docs.description)}`; t.is(documentLines[0], expectedTitle, `${ruleName} includes the rule description in title`); + // Check for examples. + if (!RULES_WITHOUT_PASS_FAIL_SECTIONS.has(ruleName)) { + t.true(documentContents.includes('## Pass'), `${ruleName} includes '## Pass' examples section`); + t.true(documentContents.includes('## Fail'), `${ruleName} includes '## Fail' examples section`); + } + // Check if the rule has configuration options. if ( (Array.isArray(rule.meta.schema) && rule.meta.schema.length > 0)