From 4d2c5ec504f241289d7785217a825fc5048cee64 Mon Sep 17 00:00:00 2001 From: Yassin Kammoun <52890329+yassin-kammoun-sonarsource@users.noreply.github.com> Date: Thu, 24 Aug 2023 16:42:19 +0200 Subject: [PATCH] Allow comment-based fixtures to be named `*.fixture.` instead of `cb.fixture.` (#4099) --- .../rules/S1128/{ => fixtures}/tsconfig.fixture.json | 0 .../src/rules/S1128/{ => fixtures}/unit.fixture.tsx | 0 packages/jsts/src/rules/S1128/unit.test.ts | 4 ++-- .../src/rules/S2699/{cb.fixture.js => chai.fixture.js} | 0 packages/jsts/src/rules/tsconfig.cb.json | 10 +++++----- .../jsts/tests/tools/testers/comment-based/checker.ts | 10 +++++----- 6 files changed, 12 insertions(+), 12 deletions(-) rename packages/jsts/src/rules/S1128/{ => fixtures}/tsconfig.fixture.json (100%) rename packages/jsts/src/rules/S1128/{ => fixtures}/unit.fixture.tsx (100%) rename packages/jsts/src/rules/S2699/{cb.fixture.js => chai.fixture.js} (100%) diff --git a/packages/jsts/src/rules/S1128/tsconfig.fixture.json b/packages/jsts/src/rules/S1128/fixtures/tsconfig.fixture.json similarity index 100% rename from packages/jsts/src/rules/S1128/tsconfig.fixture.json rename to packages/jsts/src/rules/S1128/fixtures/tsconfig.fixture.json diff --git a/packages/jsts/src/rules/S1128/unit.fixture.tsx b/packages/jsts/src/rules/S1128/fixtures/unit.fixture.tsx similarity index 100% rename from packages/jsts/src/rules/S1128/unit.fixture.tsx rename to packages/jsts/src/rules/S1128/fixtures/unit.fixture.tsx diff --git a/packages/jsts/src/rules/S1128/unit.test.ts b/packages/jsts/src/rules/S1128/unit.test.ts index 26e773bf3f..50db27b7c6 100644 --- a/packages/jsts/src/rules/S1128/unit.test.ts +++ b/packages/jsts/src/rules/S1128/unit.test.ts @@ -336,8 +336,8 @@ ruleTesterTS.run('Unnecessary imports should be removed', rule, { ], }); -const project = path.join(__dirname, 'tsconfig.fixture.json'); -const filename = path.join(__dirname, 'unit.fixture.tsx'); +const project = path.join(__dirname, 'fixtures', 'tsconfig.fixture.json'); +const filename = path.join(__dirname, 'fixtures', 'unit.fixture.tsx'); const ruleTesterJsxFactory = new RuleTester({ parserOptions: { diff --git a/packages/jsts/src/rules/S2699/cb.fixture.js b/packages/jsts/src/rules/S2699/chai.fixture.js similarity index 100% rename from packages/jsts/src/rules/S2699/cb.fixture.js rename to packages/jsts/src/rules/S2699/chai.fixture.js diff --git a/packages/jsts/src/rules/tsconfig.cb.json b/packages/jsts/src/rules/tsconfig.cb.json index 9c922f0594..09e574f1c6 100644 --- a/packages/jsts/src/rules/tsconfig.cb.json +++ b/packages/jsts/src/rules/tsconfig.cb.json @@ -4,10 +4,10 @@ "allowJs": true }, "include": [ - "**/cb.fixture.js", - "**/cb.fixture.jsx", - "**/cb.fixture.ts", - "**/cb.fixture.tsx", - "**/cb.fixture.vue" + "**/*.fixture.js", + "**/*.fixture.jsx", + "**/*.fixture.ts", + "**/*.fixture.tsx", + "**/*.fixture.vue" ] } diff --git a/packages/jsts/tests/tools/testers/comment-based/checker.ts b/packages/jsts/tests/tools/testers/comment-based/checker.ts index 90eee85399..25e6efe6ad 100644 --- a/packages/jsts/tests/tools/testers/comment-based/checker.ts +++ b/packages/jsts/tests/tools/testers/comment-based/checker.ts @@ -33,17 +33,17 @@ const ruleTester = new RuleTester({ parser: __filename }); /** * Checks that a rule raises the issues declared as comment-based expectations on fixture files. - * These fixtures are to be found in the rule directory and should be named as `cb.fixture.`. + * These fixtures are to be found in the rule directory and should be named as `*.fixture.`. * The directory can include options (`cb.options.json`) to configure the rule behaviour. */ export function check(ruleId: string, ruleModule: Rule.RuleModule, ruleDir: string) { const fixtures = []; - ['js', 'ts', 'jsx', 'tsx', 'vue'].forEach(ext => { - const fixture = path.join(ruleDir, `cb.fixture.${ext}`); - if (fs.existsSync(fixture)) { + for (const file of fs.readdirSync(ruleDir)) { + if (file.match(/\.fixture\.(js|ts|jsx|tsx|vue)$/)) { + const fixture = path.join(ruleDir, file); fixtures.push(fixture); } - }); + } for (const fixture of fixtures) { const code = fs.readFileSync(fixture, { encoding: 'utf8' }).replace(/\r?\n|\r/g, '\n');