Skip to content

Commit

Permalink
Prevent no-namespace --fix tests from running under ESLint < 5
Browse files Browse the repository at this point in the history
  • Loading branch information
Trevor Burnham committed Jun 29, 2019
1 parent 30eab3c commit 5743a13
Showing 1 changed file with 68 additions and 61 deletions.
129 changes: 68 additions & 61 deletions tests/src/rules/no-namespace.js
@@ -1,10 +1,77 @@
import { RuleTester } from 'eslint'
import eslintPkg from 'eslint/package.json'
import semver from 'semver'
import { test } from '../utils'

const ERROR_MESSAGE = 'Unexpected namespace import.'

const ruleTester = new RuleTester()

// --fix functionality requires ESLint 5+
const FIX_TESTS = semver.satisfies(eslintPkg.version, '>5.0.0') ? [
test({
code: `
import * as foo from './foo';
florp(foo.bar);
florp(foo['baz']);
`.trim(),
output: `
import { bar, baz } from './foo';
florp(bar);
florp(baz);
`.trim(),
errors: [ {
line: 1,
column: 8,
message: ERROR_MESSAGE,
}],
}),
test({
code: `
import * as foo from './foo';
const bar = 'name conflict';
const baz = 'name conflict';
const foo_baz = 'name conflict';
florp(foo.bar);
florp(foo['baz']);
`.trim(),
output: `
import { bar as foo_bar, baz as foo_baz_1 } from './foo';
const bar = 'name conflict';
const baz = 'name conflict';
const foo_baz = 'name conflict';
florp(foo_bar);
florp(foo_baz_1);
`.trim(),
errors: [ {
line: 1,
column: 8,
message: ERROR_MESSAGE,
}],
}),
test({
code: `
import * as foo from './foo';
function func(arg) {
florp(foo.func);
florp(foo['arg']);
}
`.trim(),
output: `
import { func as foo_func, arg as foo_arg } from './foo';
function func(arg) {
florp(foo_func);
florp(foo_arg);
}
`.trim(),
errors: [ {
line: 1,
column: 8,
message: ERROR_MESSAGE,
}],
}),
] : []

ruleTester.run('no-namespace', require('rules/no-namespace'), {
valid: [
{ code: 'import { a, b } from \'foo\';', parserOptions: { ecmaVersion: 2015, sourceType: 'module' } },
Expand Down Expand Up @@ -41,66 +108,6 @@ ruleTester.run('no-namespace', require('rules/no-namespace'), {
message: ERROR_MESSAGE,
} ],
}),
test({
code: `
import * as foo from './foo';
florp(foo.bar);
florp(foo['baz']);
`.trim(),
output: `
import { bar, baz } from './foo';
florp(bar);
florp(baz);
`.trim(),
errors: [ {
line: 1,
column: 8,
message: ERROR_MESSAGE,
}],
}),
test({
code: `
import * as foo from './foo';
const bar = 'name conflict';
const baz = 'name conflict';
const foo_baz = 'name conflict';
florp(foo.bar);
florp(foo['baz']);
`.trim(),
output: `
import { bar as foo_bar, baz as foo_baz_1 } from './foo';
const bar = 'name conflict';
const baz = 'name conflict';
const foo_baz = 'name conflict';
florp(foo_bar);
florp(foo_baz_1);
`.trim(),
errors: [ {
line: 1,
column: 8,
message: ERROR_MESSAGE,
}],
}),
test({
code: `
import * as foo from './foo';
function func(arg) {
florp(foo.func);
florp(foo['arg']);
}
`.trim(),
output: `
import { func as foo_func, arg as foo_arg } from './foo';
function func(arg) {
florp(foo_func);
florp(foo_arg);
}
`.trim(),
errors: [ {
line: 1,
column: 8,
message: ERROR_MESSAGE,
}],
}),
...FIX_TESTS,
],
})

0 comments on commit 5743a13

Please sign in to comment.