diff --git a/CHANGELOG.md b/CHANGELOG.md index da66f7e87..8dcb3a98d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange - [Docs] [`no-relative-packages`]: fix typo ([#3066], thanks [@joshuaobrien]) - [Performance] [`no-cycle`]: dont scc for each linted file ([#3068], thanks [@soryy708]) - [Docs] [`no-cycle`]: add `disableScc` to docs ([#3070], thanks [@soryy708]) +- [Tests] use re-exported `RuleTester` ([#3071], thanks [@G-Rath]) ## [2.30.0] - 2024-09-02 @@ -1143,6 +1144,7 @@ for info on changes for earlier releases. [`memo-parser`]: ./memo-parser/README.md +[#3071]: https://github.com/import-js/eslint-plugin-import/pull/3071 [#3070]: https://github.com/import-js/eslint-plugin-import/pull/3070 [#3068]: https://github.com/import-js/eslint-plugin-import/pull/3068 [#3066]: https://github.com/import-js/eslint-plugin-import/pull/3066 diff --git a/tests/src/rule-tester.js b/tests/src/rule-tester.js index 89c584612..f00b520d0 100644 --- a/tests/src/rule-tester.js +++ b/tests/src/rule-tester.js @@ -1,3 +1,5 @@ export function withoutAutofixOutput(test) { return { ...test, output: test.code }; } + +export { RuleTester } from 'eslint'; diff --git a/tests/src/rules/consistent-type-specifier-style.js b/tests/src/rules/consistent-type-specifier-style.js index 7799238c3..139457ff6 100644 --- a/tests/src/rules/consistent-type-specifier-style.js +++ b/tests/src/rules/consistent-type-specifier-style.js @@ -1,4 +1,4 @@ -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import { test, parsers, tsVersionSatisfies, eslintVersionSatisfies, typescriptEslintParserSatisfies } from '../utils'; const rule = require('rules/consistent-type-specifier-style'); diff --git a/tests/src/rules/default.js b/tests/src/rules/default.js index eb2028c71..1df57a23a 100644 --- a/tests/src/rules/default.js +++ b/tests/src/rules/default.js @@ -1,6 +1,6 @@ import path from 'path'; import { test, testVersion, SYNTAX_CASES, getTSParsers, parsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import semver from 'semver'; import { version as tsEslintVersion } from 'typescript-eslint-parser/package.json'; diff --git a/tests/src/rules/dynamic-import-chunkname.js b/tests/src/rules/dynamic-import-chunkname.js index 136219672..e8f97475d 100644 --- a/tests/src/rules/dynamic-import-chunkname.js +++ b/tests/src/rules/dynamic-import-chunkname.js @@ -1,6 +1,5 @@ import { SYNTAX_CASES, getTSParsers, parsers } from '../utils'; -import { RuleTester } from 'eslint'; -import { withoutAutofixOutput } from '../rule-tester'; +import { RuleTester, withoutAutofixOutput } from '../rule-tester'; import semver from 'semver'; const rule = require('rules/dynamic-import-chunkname'); diff --git a/tests/src/rules/export.js b/tests/src/rules/export.js index f16a25ecf..338501511 100644 --- a/tests/src/rules/export.js +++ b/tests/src/rules/export.js @@ -1,6 +1,6 @@ import { test, testFilePath, SYNTAX_CASES, getTSParsers, testVersion } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import eslintPkg from 'eslint/package.json'; import semver from 'semver'; import { version as tsEslintVersion } from 'typescript-eslint-parser/package.json'; diff --git a/tests/src/rules/exports-last.js b/tests/src/rules/exports-last.js index d7122e9a0..a676ae044 100644 --- a/tests/src/rules/exports-last.js +++ b/tests/src/rules/exports-last.js @@ -1,6 +1,6 @@ import { test } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import rule from 'rules/exports-last'; const ruleTester = new RuleTester(); diff --git a/tests/src/rules/extensions.js b/tests/src/rules/extensions.js index 14d84eaa6..97267832c 100644 --- a/tests/src/rules/extensions.js +++ b/tests/src/rules/extensions.js @@ -1,4 +1,4 @@ -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import rule from 'rules/extensions'; import { getTSParsers, test, testFilePath, parsers } from '../utils'; diff --git a/tests/src/rules/first.js b/tests/src/rules/first.js index f34f227b2..52b71db86 100644 --- a/tests/src/rules/first.js +++ b/tests/src/rules/first.js @@ -2,7 +2,7 @@ import { test, getTSParsers, testVersion } from '../utils'; import fs from 'fs'; import path from 'path'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/first'); diff --git a/tests/src/rules/group-exports.js b/tests/src/rules/group-exports.js index c3d07046f..6f05bc866 100644 --- a/tests/src/rules/group-exports.js +++ b/tests/src/rules/group-exports.js @@ -1,5 +1,5 @@ import { test } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import rule from 'rules/group-exports'; import { resolve } from 'path'; import { default as babelPresetFlow } from 'babel-preset-flow'; diff --git a/tests/src/rules/max-dependencies.js b/tests/src/rules/max-dependencies.js index 982a4b427..959ee68de 100644 --- a/tests/src/rules/max-dependencies.js +++ b/tests/src/rules/max-dependencies.js @@ -1,6 +1,6 @@ import { test, getTSParsers, parsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/max-dependencies'); diff --git a/tests/src/rules/named.js b/tests/src/rules/named.js index 227bffc80..f506caeb6 100644 --- a/tests/src/rules/named.js +++ b/tests/src/rules/named.js @@ -1,5 +1,5 @@ import { test, SYNTAX_CASES, getTSParsers, testFilePath, testVersion, parsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import path from 'path'; import { CASE_SENSITIVE_FS } from 'eslint-module-utils/resolve'; diff --git a/tests/src/rules/namespace.js b/tests/src/rules/namespace.js index 3f768a571..60fcb93f6 100644 --- a/tests/src/rules/namespace.js +++ b/tests/src/rules/namespace.js @@ -1,5 +1,5 @@ import { test, SYNTAX_CASES, getTSParsers, testVersion, testFilePath, parsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import flatMap from 'array.prototype.flatmap'; const ruleTester = new RuleTester({ env: { es6: true } }); diff --git a/tests/src/rules/newline-after-import.js b/tests/src/rules/newline-after-import.js index 5c827c0d2..984e89855 100644 --- a/tests/src/rules/newline-after-import.js +++ b/tests/src/rules/newline-after-import.js @@ -1,5 +1,4 @@ -import { RuleTester } from 'eslint'; -import { withoutAutofixOutput } from '../rule-tester'; +import { RuleTester, withoutAutofixOutput } from '../rule-tester'; import flatMap from 'array.prototype.flatmap'; import semver from 'semver'; import { version as tsEslintVersion } from 'typescript-eslint-parser/package.json'; diff --git a/tests/src/rules/no-absolute-path.js b/tests/src/rules/no-absolute-path.js index bfa08465c..bcf215137 100644 --- a/tests/src/rules/no-absolute-path.js +++ b/tests/src/rules/no-absolute-path.js @@ -1,6 +1,6 @@ import { test } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-absolute-path'); diff --git a/tests/src/rules/no-amd.js b/tests/src/rules/no-amd.js index 5317aa8fd..6b66578df 100644 --- a/tests/src/rules/no-amd.js +++ b/tests/src/rules/no-amd.js @@ -1,4 +1,4 @@ -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import eslintPkg from 'eslint/package.json'; import semver from 'semver'; diff --git a/tests/src/rules/no-anonymous-default-export.js b/tests/src/rules/no-anonymous-default-export.js index 53b2fc6fb..37b3009f0 100644 --- a/tests/src/rules/no-anonymous-default-export.js +++ b/tests/src/rules/no-anonymous-default-export.js @@ -1,6 +1,6 @@ import { test, testVersion, SYNTAX_CASES } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-anonymous-default-export'); diff --git a/tests/src/rules/no-commonjs.js b/tests/src/rules/no-commonjs.js index 9950608a7..3211c085a 100644 --- a/tests/src/rules/no-commonjs.js +++ b/tests/src/rules/no-commonjs.js @@ -1,5 +1,4 @@ -import { RuleTester } from 'eslint'; -import { withoutAutofixOutput } from '../rule-tester'; +import { RuleTester, withoutAutofixOutput } from '../rule-tester'; import eslintPkg from 'eslint/package.json'; import semver from 'semver'; diff --git a/tests/src/rules/no-cycle.js b/tests/src/rules/no-cycle.js index e9b41c8fb..ae4baab66 100644 --- a/tests/src/rules/no-cycle.js +++ b/tests/src/rules/no-cycle.js @@ -1,6 +1,6 @@ import { parsers, test as _test, testFilePath, testVersion as _testVersion } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import flatMap from 'array.prototype.flatmap'; const ruleTester = new RuleTester(); diff --git a/tests/src/rules/no-default-export.js b/tests/src/rules/no-default-export.js index 6c1a85a1d..29292427c 100644 --- a/tests/src/rules/no-default-export.js +++ b/tests/src/rules/no-default-export.js @@ -1,6 +1,6 @@ import { parsers, test, testVersion } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-default-export'); diff --git a/tests/src/rules/no-deprecated.js b/tests/src/rules/no-deprecated.js index 318ea7c36..ad51d23c2 100644 --- a/tests/src/rules/no-deprecated.js +++ b/tests/src/rules/no-deprecated.js @@ -1,6 +1,6 @@ import { test, SYNTAX_CASES, getTSParsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-deprecated'); diff --git a/tests/src/rules/no-duplicates.js b/tests/src/rules/no-duplicates.js index a48e4d3f7..cf57a3d59 100644 --- a/tests/src/rules/no-duplicates.js +++ b/tests/src/rules/no-duplicates.js @@ -2,8 +2,7 @@ import * as path from 'path'; import { test as testUtil, getNonDefaultParsers, parsers, tsVersionSatisfies, typescriptEslintParserSatisfies } from '../utils'; import jsxConfig from '../../../config/react'; -import { RuleTester } from 'eslint'; -import { withoutAutofixOutput } from '../rule-tester'; +import { RuleTester, withoutAutofixOutput } from '../rule-tester'; import eslintPkg from 'eslint/package.json'; import semver from 'semver'; import flatMap from 'array.prototype.flatmap'; diff --git a/tests/src/rules/no-dynamic-require.js b/tests/src/rules/no-dynamic-require.js index e316470ec..fc7cf2b06 100644 --- a/tests/src/rules/no-dynamic-require.js +++ b/tests/src/rules/no-dynamic-require.js @@ -1,6 +1,6 @@ import { parsers, test, testVersion } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import flatMap from 'array.prototype.flatmap'; const ruleTester = new RuleTester(); diff --git a/tests/src/rules/no-empty-named-blocks.js b/tests/src/rules/no-empty-named-blocks.js index 87965a140..d9514a845 100644 --- a/tests/src/rules/no-empty-named-blocks.js +++ b/tests/src/rules/no-empty-named-blocks.js @@ -1,6 +1,6 @@ import { parsers, test } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-empty-named-blocks'); diff --git a/tests/src/rules/no-extraneous-dependencies.js b/tests/src/rules/no-extraneous-dependencies.js index dd01c141d..4a465eb39 100644 --- a/tests/src/rules/no-extraneous-dependencies.js +++ b/tests/src/rules/no-extraneous-dependencies.js @@ -3,7 +3,7 @@ import typescriptConfig from '../../../config/typescript'; import path from 'path'; import fs from 'fs'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import flatMap from 'array.prototype.flatmap'; const ruleTester = new RuleTester(); diff --git a/tests/src/rules/no-import-module-exports.js b/tests/src/rules/no-import-module-exports.js index aa927857e..5738f8c52 100644 --- a/tests/src/rules/no-import-module-exports.js +++ b/tests/src/rules/no-import-module-exports.js @@ -1,5 +1,5 @@ import path from 'path'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import { eslintVersionSatisfies, test, testVersion } from '../utils'; diff --git a/tests/src/rules/no-internal-modules.js b/tests/src/rules/no-internal-modules.js index c1c301545..9fa91ea3d 100644 --- a/tests/src/rules/no-internal-modules.js +++ b/tests/src/rules/no-internal-modules.js @@ -1,4 +1,4 @@ -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import flatMap from 'array.prototype.flatmap'; import rule from 'rules/no-internal-modules'; diff --git a/tests/src/rules/no-mutable-exports.js b/tests/src/rules/no-mutable-exports.js index 1171443c4..ff9643b0d 100644 --- a/tests/src/rules/no-mutable-exports.js +++ b/tests/src/rules/no-mutable-exports.js @@ -1,5 +1,5 @@ import { parsers, test, testVersion } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import rule from 'rules/no-mutable-exports'; const ruleTester = new RuleTester(); diff --git a/tests/src/rules/no-named-as-default-member.js b/tests/src/rules/no-named-as-default-member.js index 1773176f4..5c00224ed 100644 --- a/tests/src/rules/no-named-as-default-member.js +++ b/tests/src/rules/no-named-as-default-member.js @@ -1,5 +1,5 @@ import { test, testVersion, SYNTAX_CASES } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import rule from 'rules/no-named-as-default-member'; const ruleTester = new RuleTester(); diff --git a/tests/src/rules/no-named-as-default.js b/tests/src/rules/no-named-as-default.js index 7fcd6e4f7..349372067 100644 --- a/tests/src/rules/no-named-as-default.js +++ b/tests/src/rules/no-named-as-default.js @@ -1,5 +1,5 @@ import { test, testVersion, SYNTAX_CASES, parsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-named-as-default'); diff --git a/tests/src/rules/no-named-default.js b/tests/src/rules/no-named-default.js index 191c9c6ce..d36e26c44 100644 --- a/tests/src/rules/no-named-default.js +++ b/tests/src/rules/no-named-default.js @@ -1,5 +1,5 @@ import { test, testVersion, SYNTAX_CASES, parsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-named-default'); diff --git a/tests/src/rules/no-named-export.js b/tests/src/rules/no-named-export.js index 58b5da2f8..83ea8571f 100644 --- a/tests/src/rules/no-named-export.js +++ b/tests/src/rules/no-named-export.js @@ -1,4 +1,4 @@ -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import { parsers, test, testVersion } from '../utils'; const ruleTester = new RuleTester(); diff --git a/tests/src/rules/no-namespace.js b/tests/src/rules/no-namespace.js index e297d953a..f5cd967a2 100644 --- a/tests/src/rules/no-namespace.js +++ b/tests/src/rules/no-namespace.js @@ -1,5 +1,4 @@ -import { RuleTester } from 'eslint'; -import { withoutAutofixOutput } from '../rule-tester'; +import { RuleTester, withoutAutofixOutput } from '../rule-tester'; import eslintPkg from 'eslint/package.json'; import semver from 'semver'; import { test } from '../utils'; diff --git a/tests/src/rules/no-nodejs-modules.js b/tests/src/rules/no-nodejs-modules.js index b25eb0ce8..cf131ffee 100644 --- a/tests/src/rules/no-nodejs-modules.js +++ b/tests/src/rules/no-nodejs-modules.js @@ -1,6 +1,6 @@ import { test } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const isCore = require('is-core-module'); const ruleTester = new RuleTester(); diff --git a/tests/src/rules/no-relative-packages.js b/tests/src/rules/no-relative-packages.js index 6104aeb9c..9b424506c 100644 --- a/tests/src/rules/no-relative-packages.js +++ b/tests/src/rules/no-relative-packages.js @@ -1,4 +1,4 @@ -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import rule from 'rules/no-relative-packages'; import { normalize } from 'path'; diff --git a/tests/src/rules/no-relative-parent-imports.js b/tests/src/rules/no-relative-parent-imports.js index 1af9b8cf8..93c8b97aa 100644 --- a/tests/src/rules/no-relative-parent-imports.js +++ b/tests/src/rules/no-relative-parent-imports.js @@ -1,4 +1,4 @@ -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import rule from 'rules/no-relative-parent-imports'; import { parsers, test as _test, testFilePath } from '../utils'; diff --git a/tests/src/rules/no-restricted-paths.js b/tests/src/rules/no-restricted-paths.js index a83a804a0..c3382ad08 100644 --- a/tests/src/rules/no-restricted-paths.js +++ b/tests/src/rules/no-restricted-paths.js @@ -1,4 +1,4 @@ -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import rule from 'rules/no-restricted-paths'; import { getTSParsers, test, testFilePath } from '../utils'; diff --git a/tests/src/rules/no-self-import.js b/tests/src/rules/no-self-import.js index ff1248b43..dd2ea1bf2 100644 --- a/tests/src/rules/no-self-import.js +++ b/tests/src/rules/no-self-import.js @@ -1,6 +1,6 @@ import { test, testFilePath } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-self-import'); diff --git a/tests/src/rules/no-unassigned-import.js b/tests/src/rules/no-unassigned-import.js index f96808cbc..b73246ac0 100644 --- a/tests/src/rules/no-unassigned-import.js +++ b/tests/src/rules/no-unassigned-import.js @@ -1,7 +1,7 @@ import { test } from '../utils'; import * as path from 'path'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-unassigned-import'); diff --git a/tests/src/rules/no-unresolved.js b/tests/src/rules/no-unresolved.js index 9bf1a42d4..c6e300c5d 100644 --- a/tests/src/rules/no-unresolved.js +++ b/tests/src/rules/no-unresolved.js @@ -4,7 +4,7 @@ import { getTSParsers, test, SYNTAX_CASES, testVersion, parsers } from '../utils import { CASE_SENSITIVE_FS } from 'eslint-module-utils/resolve'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-unresolved'); diff --git a/tests/src/rules/no-unused-modules.js b/tests/src/rules/no-unused-modules.js index 80bd70227..22b54ce6f 100644 --- a/tests/src/rules/no-unused-modules.js +++ b/tests/src/rules/no-unused-modules.js @@ -2,7 +2,7 @@ import { test, testVersion, testFilePath, getTSParsers, parsers } from '../utils import jsxConfig from '../../../config/react'; import typescriptConfig from '../../../config/typescript'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import fs from 'fs'; import eslintPkg from 'eslint/package.json'; import semver from 'semver'; diff --git a/tests/src/rules/no-useless-path-segments.js b/tests/src/rules/no-useless-path-segments.js index d6d0395de..87f7a73e9 100644 --- a/tests/src/rules/no-useless-path-segments.js +++ b/tests/src/rules/no-useless-path-segments.js @@ -1,5 +1,5 @@ import { parsers, test } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; const ruleTester = new RuleTester(); const rule = require('rules/no-useless-path-segments'); diff --git a/tests/src/rules/no-webpack-loader-syntax.js b/tests/src/rules/no-webpack-loader-syntax.js index 05ad242f5..86114b36c 100644 --- a/tests/src/rules/no-webpack-loader-syntax.js +++ b/tests/src/rules/no-webpack-loader-syntax.js @@ -1,6 +1,6 @@ import { test, getTSParsers, parsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import semver from 'semver'; const ruleTester = new RuleTester(); diff --git a/tests/src/rules/order.js b/tests/src/rules/order.js index ff6b65730..ea62cec71 100644 --- a/tests/src/rules/order.js +++ b/tests/src/rules/order.js @@ -1,7 +1,6 @@ import { test, getTSParsers, getNonDefaultParsers, testFilePath, parsers } from '../utils'; -import { RuleTester } from 'eslint'; -import { withoutAutofixOutput } from '../rule-tester'; +import { RuleTester, withoutAutofixOutput } from '../rule-tester'; import eslintPkg from 'eslint/package.json'; import semver from 'semver'; import flatMap from 'array.prototype.flatmap'; diff --git a/tests/src/rules/prefer-default-export.js b/tests/src/rules/prefer-default-export.js index a7310445b..8e459873f 100644 --- a/tests/src/rules/prefer-default-export.js +++ b/tests/src/rules/prefer-default-export.js @@ -1,6 +1,6 @@ import { test, testVersion, getNonDefaultParsers, parsers } from '../utils'; -import { RuleTester } from 'eslint'; +import { RuleTester } from '../rule-tester'; import semver from 'semver'; import { version as tsEslintVersion } from 'typescript-eslint-parser/package.json'; diff --git a/tests/src/rules/unambiguous.js b/tests/src/rules/unambiguous.js index c103353e4..15c67470e 100644 --- a/tests/src/rules/unambiguous.js +++ b/tests/src/rules/unambiguous.js @@ -1,5 +1,4 @@ -import { RuleTester } from 'eslint'; -import { withoutAutofixOutput } from '../rule-tester'; +import { RuleTester, withoutAutofixOutput } from '../rule-tester'; import { parsers } from '../utils'; const ruleTester = new RuleTester();