Skip to content

Commit

Permalink
Use require.resolve when passing parser to RuleTester
Browse files Browse the repository at this point in the history
  • Loading branch information
sheepsteak committed Jun 23, 2019
1 parent 1029b4f commit e6ea127
Show file tree
Hide file tree
Showing 21 changed files with 100 additions and 100 deletions.
26 changes: 13 additions & 13 deletions tests/src/rules/default.js
Expand Up @@ -28,19 +28,19 @@ ruleTester.run('default', rule, {

// es7 export syntax
test({ code: 'export bar from "./bar"'
, parser: 'babel-eslint' }),
, parser: require.resolve('babel-eslint') }),
test({ code: 'export { default as bar } from "./bar"' }),
test({ code: 'export bar, { foo } from "./bar"'
, parser: 'babel-eslint' }),
, parser: require.resolve('babel-eslint') }),
test({ code: 'export { default as bar, foo } from "./bar"' }),
test({ code: 'export bar, * as names from "./bar"'
, parser: 'babel-eslint' }),
, parser: require.resolve('babel-eslint') }),

// sanity check
test({ code: 'export {a} from "./named-exports"' }),
test({
code: 'import twofer from "./trampoline"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

// jsx
Expand Down Expand Up @@ -68,27 +68,27 @@ ruleTester.run('default', rule, {
// from no-errors
test({
code: "import Foo from './jsx/FooES7.js';",
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

// #545: more ES7 cases
test({
code: "import bar from './default-export-from.js';",
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: "import bar from './default-export-from-named.js';",
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: "import bar from './default-export-from-ignored.js';",
settings: { 'import/ignore': ['common'] },
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: "export bar from './default-export-from-ignored.js';",
settings: { 'import/ignore': ['common'] },
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

...SYNTAX_CASES,
Expand All @@ -113,23 +113,23 @@ ruleTester.run('default', rule, {
// es7 export syntax
test({
code: 'export baz from "./named-exports"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ['No default export found in module.'],
}),
test({
code: 'export baz, { bar } from "./named-exports"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ['No default export found in module.'],
}),
test({
code: 'export baz, * as names from "./named-exports"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ['No default export found in module.'],
}),
// exports default from a module with no default
test({
code: 'import twofer from "./broken-trampoline"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ['No default export found in module.'],
}),

Expand Down
2 changes: 1 addition & 1 deletion tests/src/rules/dynamic-import-chunkname.js
Expand Up @@ -14,7 +14,7 @@ const pickyCommentOptions = [{
const multipleImportFunctionOptions = [{
importFunctions: ['dynamicImport', 'definitelyNotStaticImport'],
}]
const parser = 'babel-eslint'
const parser = require.resolve('babel-eslint')

const noLeadingCommentError = 'dynamic imports require a leading comment with the webpack chunkname'
const nonBlockCommentError = 'dynamic imports require a /* foo */ style comment, not a // foo comment'
Expand Down
4 changes: 2 additions & 2 deletions tests/src/rules/export.js
Expand Up @@ -112,10 +112,10 @@ ruleTester.run('export', rule, {

context('Typescript', function () {
// Typescript
const parsers = ['typescript-eslint-parser']
const parsers = [require.resolve('typescript-eslint-parser')]

if (semver.satisfies(eslintPkg.version, '>5.0.0')) {
parsers.push('@typescript-eslint/parser')
parsers.push(require.resolve('@typescript-eslint/parser'))
}

parsers.forEach((parser) => {
Expand Down
2 changes: 1 addition & 1 deletion tests/src/rules/max-dependencies.js
Expand Up @@ -66,7 +66,7 @@ ruleTester.run('max-dependencies', rule, {

test({
code: 'import type { x } from \'./foo\'; import type { y } from \'./bar\'',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
options: [{
max: 1,
}],
Expand Down
36 changes: 18 additions & 18 deletions tests/src/rules/named.js
Expand Up @@ -55,11 +55,11 @@ ruleTester.run('named', rule, {
// es7
test({
code: 'export bar, { foo } from "./bar"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import { foo, bar } from "./named-trampoline"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

// regression tests
Expand All @@ -74,43 +74,43 @@ ruleTester.run('named', rule, {
// should ignore imported/exported flow types, even if they don’t exist
test({
code: 'import type { MissingType } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import typeof { MissingType } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import type { MyOpaqueType } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import typeof { MyOpaqueType } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import { type MyOpaqueType, MyClass } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import { typeof MyOpaqueType, MyClass } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import typeof MissingType from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import typeof * as MissingType from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'export type { MissingType } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'export type { MyOpaqueType } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

// jsnext
Expand Down Expand Up @@ -188,17 +188,17 @@ ruleTester.run('named', rule, {
// es7
test({
code: 'export bar2, { bar } from "./bar"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ["bar not found in './bar'"],
}),
test({
code: 'import { foo, bar, baz } from "./named-trampoline"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ["baz not found in './named-trampoline'"],
}),
test({
code: 'import { baz } from "./broken-trampoline"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ["baz not found via broken-trampoline.js -> named-exports.js"],
}),

Expand All @@ -214,7 +214,7 @@ ruleTester.run('named', rule, {

test({
code: 'import { type MyOpaqueType, MyMissingClass } from "./flowtypes"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ["MyMissingClass not found in './flowtypes'"],
}),

Expand Down Expand Up @@ -286,10 +286,10 @@ ruleTester.run('named (export *)', rule, {

context('Typescript', function () {
// Typescript
const parsers = ['typescript-eslint-parser']
const parsers = [require.resolve('typescript-eslint-parser')]

if (semver.satisfies(eslintPkg.version, '>5.0.0')) {
parsers.push('@typescript-eslint/parser')
parsers.push(require.resolve('@typescript-eslint/parser'))
}

parsers.forEach((parser) => {
Expand Down
18 changes: 9 additions & 9 deletions tests/src/rules/namespace.js
Expand Up @@ -56,16 +56,16 @@ const valid = [
// es7 //
/////////
test({ code: 'export * as names from "./named-exports"'
, parser: 'babel-eslint' }),
, parser: require.resolve('babel-eslint') }),
test({ code: 'export defport, * as names from "./named-exports"'
, parser: 'babel-eslint' }),
, parser: require.resolve('babel-eslint') }),
// non-existent is handled by no-unresolved
test({ code: 'export * as names from "./does-not-exist"'
, parser: 'babel-eslint' }),
, parser: require.resolve('babel-eslint') }),

test({
code: 'import * as Endpoints from "./issue-195/Endpoints"; console.log(Endpoints.Users)',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

// respect hoisting
Expand All @@ -80,11 +80,11 @@ const valid = [
test({ code: "import * as names from './default-export'; console.log(names.default)" }),
test({
code: 'export * as names from "./default-export"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'export defport, * as names from "./default-export"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

// #456: optionally ignore computed references
Expand All @@ -102,7 +102,7 @@ const valid = [
}),
test({
code: `import * as names from './named-exports'; const {a, b, ...rest} = names;`,
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

// #1144: should handle re-export CommonJS as namespace
Expand Down Expand Up @@ -163,7 +163,7 @@ const invalid = [

test({
code: 'import * as Endpoints from "./issue-195/Endpoints"; console.log(Endpoints.Foo)',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ["'Foo' not found in imported namespace 'Endpoints'."],
}),

Expand Down Expand Up @@ -217,7 +217,7 @@ const invalid = [
///////////////////////
// deep dereferences //
//////////////////////
;[['deep', 'espree'], ['deep-es7', 'babel-eslint']].forEach(function ([folder, parser]) { // close over params
;[['deep', require.resolve('espree')], ['deep-es7', require.resolve('babel-eslint')]].forEach(function ([folder, parser]) { // close over params
valid.push(
test({ parser, code: `import * as a from "./${folder}/a"; console.log(a.b.c.d.e)` }),
test({ parser, code: `import { b } from "./${folder}/a"; console.log(b.c.d.e)` }),
Expand Down
12 changes: 6 additions & 6 deletions tests/src/rules/no-cycle.js
Expand Up @@ -43,15 +43,15 @@ ruleTester.run('no-cycle', rule, {
test({
code: 'import("./depth-two").then(function({ foo }){})',
options: [{ maxDepth: 1 }],
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import type { FooType } from "./depth-one"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import type { FooType, BarType } from "./depth-one"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
],
invalid: [
Expand Down Expand Up @@ -108,17 +108,17 @@ ruleTester.run('no-cycle', rule, {
test({
code: 'import { bar } from "./depth-three-indirect"',
errors: [error(`Dependency cycle via ./depth-two:1=>./depth-one:1`)],
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import("./depth-three-star")',
errors: [error(`Dependency cycle via ./depth-two:1=>./depth-one:1`)],
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import("./depth-three-indirect")',
errors: [error(`Dependency cycle via ./depth-two:1=>./depth-one:1`)],
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
],
})
Expand Down
10 changes: 5 additions & 5 deletions tests/src/rules/no-default-export.js
Expand Up @@ -58,7 +58,7 @@ ruleTester.run('no-default-export', rule, {
}),
test({
code: 'export { a, b } from "foo.js"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),

// no exports at all
Expand All @@ -74,15 +74,15 @@ ruleTester.run('no-default-export', rule, {

test({
code: `export type UserId = number;`,
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'export foo from "foo.js"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: `export Memory, { MemoryValue } from './Memory'`,
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
],
invalid: [
Expand Down Expand Up @@ -112,7 +112,7 @@ ruleTester.run('no-default-export', rule, {
}),
test({
code: 'export default from "foo.js"',
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: [{
ruleId: 'ExportNamedDeclaration',
message: 'Prefer named exports.',
Expand Down
4 changes: 2 additions & 2 deletions tests/src/rules/no-duplicates.js
Expand Up @@ -23,7 +23,7 @@ ruleTester.run('no-duplicates', rule, {
// #225: ignore duplicate if is a flow type import
test({
code: "import { x } from './foo'; import type { y } from './foo'",
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
],
invalid: [
Expand Down Expand Up @@ -64,7 +64,7 @@ ruleTester.run('no-duplicates', rule, {
test({
code: "import type { x } from './foo'; import type { y } from './foo'",
output: "import type { x , y } from './foo'; ",
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
errors: ['\'./foo\' imported multiple times.', '\'./foo\' imported multiple times.'],
}),

Expand Down
4 changes: 2 additions & 2 deletions tests/src/rules/no-extraneous-dependencies.js
Expand Up @@ -76,7 +76,7 @@ ruleTester.run('no-extraneous-dependencies', rule, {
test({
code: 'import type MyType from "myflowtyped";',
options: [{packageDir: packageDirWithFlowTyped}],
parser: 'babel-eslint',
parser: require.resolve('babel-eslint'),
}),
test({
code: 'import react from "react";',
Expand Down Expand Up @@ -289,5 +289,5 @@ ruleTester.run('no-extraneous-dependencies', rule, {
message: "'react' should be listed in the project's dependencies. Run 'npm i -S react' to add it",
}],
}),
]
],
})

0 comments on commit e6ea127

Please sign in to comment.