Skip to content

Commit d6a9fd2

Browse files
authored
🐛 fix for ESLint 6 (fixes #24) (#27)
1 parent 87165ed commit d6a9fd2

File tree

7 files changed

+84
-71
lines changed

7 files changed

+84
-71
lines changed

azure-pipelines.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,14 @@ jobs:
4040
nodeVersion: 12.x
4141
eslintVersion: 4.x
4242

43+
- template: .azure-pipelines/test-job.yml
44+
parameters:
45+
name: test_on_linux_node12_eslint6rc
46+
displayName: Test on Node 12, ESLint 6 RC, Linux
47+
vmImage: Ubuntu-16.04
48+
nodeVersion: 12.x
49+
eslintVersion: ^6.0.0-rc.0
50+
4351
- template: .azure-pipelines/test-job.yml
4452
parameters:
4553
name: test_on_windows_node12_eslint5

lib/utils/patch.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,9 @@ function convert(messages, sourceCode, ruleId, severity, keepAsIs) {
138138

139139
module.exports = (ruleId = "eslint-comments/no-unused-disable") => {
140140
for (const Linter of getLinters()) {
141-
const verify0 = Linter.prototype.verify
142-
143-
Object.defineProperty(Linter.prototype, "verify", {
144-
value: function verify(
141+
const verify0 = Linter.prototype._verifyWithoutProcessors
142+
Object.defineProperty(Linter.prototype, "_verifyWithoutProcessors", {
143+
value: function _verifyWithoutProcessors(
145144
textOrSourceCode,
146145
config,
147146
filenameOrOptions

tests/lib/rules/disable-enable-pair.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ console.log('This code does not even have any special comments')
7171
},
7272
{
7373
code: `
74-
/*eslint-disable no-unused-var, no-undef */
74+
/*eslint-disable no-unused-vars, no-undef */
7575
var foo = 1
7676
`,
7777
options: [{ allowWholeFile: true }],

tests/lib/rules/no-aggregating-enable.js

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,32 @@ const tester = new RuleTester()
1111
tester.run("no-aggregating-enable", rule, {
1212
valid: [
1313
`
14-
/*eslint-disable a*/
15-
/*eslint-enable a*/
14+
/*eslint-disable no-redeclare*/
15+
/*eslint-enable no-redeclare*/
1616
`,
1717
`
18-
/*eslint-disable a*/
19-
/*eslint-enable b*/
18+
/*eslint-disable no-redeclare*/
19+
/*eslint-enable no-shadow*/
2020
`,
2121
`
22-
/*eslint-disable a, b*/
22+
/*eslint-disable no-redeclare, no-shadow*/
2323
/*eslint-enable*/
2424
`,
2525
`
26-
/*eslint-disable a, b*/
27-
/*eslint-enable a, b*/
26+
/*eslint-disable no-redeclare, no-shadow*/
27+
/*eslint-enable no-redeclare, no-shadow*/
2828
`,
2929
`
30-
/*eslint-disable a, b*/
31-
/*eslint-enable a*/
32-
/*eslint-enable b*/
30+
/*eslint-disable no-redeclare, no-shadow*/
31+
/*eslint-enable no-redeclare*/
32+
/*eslint-enable no-shadow*/
3333
`,
3434
],
3535
invalid: [
3636
{
3737
code: `
38-
/*eslint-disable a*/
39-
/*eslint-disable b*/
38+
/*eslint-disable no-redeclare*/
39+
/*eslint-disable no-shadow*/
4040
/*eslint-enable*/
4141
`,
4242
errors: [
@@ -45,9 +45,9 @@ tester.run("no-aggregating-enable", rule, {
4545
},
4646
{
4747
code: `
48-
/*eslint-disable a*/
49-
/*eslint-disable b*/
50-
/*eslint-disable c*/
48+
/*eslint-disable no-redeclare*/
49+
/*eslint-disable no-shadow*/
50+
/*eslint-disable no-undef*/
5151
/*eslint-enable*/
5252
`,
5353
errors: [
@@ -56,9 +56,9 @@ tester.run("no-aggregating-enable", rule, {
5656
},
5757
{
5858
code: `
59-
/*eslint-disable a*/
60-
/*eslint-disable b*/
61-
/*eslint-enable a, b*/
59+
/*eslint-disable no-redeclare*/
60+
/*eslint-disable no-shadow*/
61+
/*eslint-enable no-redeclare, no-shadow*/
6262
`,
6363
errors: [
6464
"This `eslint-enable` comment affects 2 `eslint-disable` comments. An `eslint-enable` comment should be for an `eslint-disable` comment.",

tests/lib/rules/no-restricted-disable.js

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,89 +4,93 @@
44
*/
55
"use strict"
66

7-
const RuleTester = require("eslint").RuleTester
7+
const { Linter, RuleTester } = require("eslint")
88
const rule = require("../../../lib/rules/no-restricted-disable")
9+
const coreRules = new Linter().getRules()
910
const tester = new RuleTester()
1011

12+
tester.defineRule("foo/no-undef", coreRules.get("no-undef"))
13+
tester.defineRule("foo/no-redeclare", coreRules.get("no-redeclare"))
14+
1115
tester.run("no-restricted-disable", rule, {
1216
valid: [
1317
"/*eslint-disable*/",
1418
"//eslint-disable-line",
1519
"//eslint-disable-next-line",
1620
{
17-
code: "/*eslint-disable b*/",
18-
options: ["a"],
21+
code: "/*eslint-disable eqeqeq*/",
22+
options: ["no-unused-vars"],
1923
},
2024
{
21-
code: "/*eslint-enable a*/",
22-
options: ["a"],
25+
code: "/*eslint-enable eqeqeq*/",
26+
options: ["eqeqeq"],
2327
},
2428
{
25-
code: "/*eslint-disable a*/",
26-
options: ["*", "!a"],
29+
code: "/*eslint-disable eqeqeq*/",
30+
options: ["*", "!eqeqeq"],
2731
},
2832
],
2933
invalid: [
3034
{
31-
code: "/*eslint-disable a*/",
32-
options: ["a"],
33-
errors: ["Disabling 'a' is not allowed."],
35+
code: "/*eslint-disable eqeqeq*/",
36+
options: ["eqeqeq"],
37+
errors: ["Disabling 'eqeqeq' is not allowed."],
3438
},
3539
{
3640
code: "/*eslint-disable*/",
37-
options: ["a"],
38-
errors: ["Disabling 'a' is not allowed."],
41+
options: ["eqeqeq"],
42+
errors: ["Disabling 'eqeqeq' is not allowed."],
3943
},
4044
{
41-
code: "//eslint-disable-line a",
42-
options: ["a"],
43-
errors: ["Disabling 'a' is not allowed."],
45+
code: "//eslint-disable-line eqeqeq",
46+
options: ["eqeqeq"],
47+
errors: ["Disabling 'eqeqeq' is not allowed."],
4448
},
4549
{
4650
code: "//eslint-disable-line",
47-
options: ["a"],
48-
errors: ["Disabling 'a' is not allowed."],
51+
options: ["eqeqeq"],
52+
errors: ["Disabling 'eqeqeq' is not allowed."],
4953
},
5054
{
51-
code: "//eslint-disable-next-line a",
52-
options: ["a"],
53-
errors: ["Disabling 'a' is not allowed."],
55+
code: "//eslint-disable-next-line eqeqeq",
56+
options: ["eqeqeq"],
57+
errors: ["Disabling 'eqeqeq' is not allowed."],
5458
},
5559
{
5660
code: "//eslint-disable-next-line",
57-
options: ["a"],
58-
errors: ["Disabling 'a' is not allowed."],
61+
options: ["eqeqeq"],
62+
errors: ["Disabling 'eqeqeq' is not allowed."],
5963
},
6064

6165
{
62-
code: "/*eslint-disable a, b, c*/",
63-
options: ["*", "!b", "!c"],
64-
errors: ["Disabling 'a' is not allowed."],
66+
code: "/*eslint-disable eqeqeq, no-undef, no-redeclare*/",
67+
options: ["*", "!no-undef", "!no-redeclare"],
68+
errors: ["Disabling 'eqeqeq' is not allowed."],
6569
},
6670
{
6771
code: "/*eslint-disable*/",
68-
options: ["*", "!b", "!c"],
69-
errors: ["Disabling '*,!b,!c' is not allowed."],
72+
options: ["*", "!no-undef", "!no-redeclare"],
73+
errors: ["Disabling '*,!no-undef,!no-redeclare' is not allowed."],
7074
},
7175
{
72-
code: "//eslint-disable-line a, b, c",
73-
options: ["*", "!b", "!c"],
74-
errors: ["Disabling 'a' is not allowed."],
76+
code: "//eslint-disable-line eqeqeq, no-undef, no-redeclare",
77+
options: ["*", "!no-undef", "!no-redeclare"],
78+
errors: ["Disabling 'eqeqeq' is not allowed."],
7579
},
7680
{
7781
code: "//eslint-disable-line",
78-
options: ["*", "!b", "!c"],
79-
errors: ["Disabling '*,!b,!c' is not allowed."],
82+
options: ["*", "!no-undef", "!no-redeclare"],
83+
errors: ["Disabling '*,!no-undef,!no-redeclare' is not allowed."],
8084
},
8185
{
82-
code: "//eslint-disable-next-line a, b, c",
83-
options: ["*", "!b", "!c"],
84-
errors: ["Disabling 'a' is not allowed."],
86+
code: "//eslint-disable-next-line eqeqeq, no-undef, no-redeclare",
87+
options: ["*", "!no-undef", "!no-redeclare"],
88+
errors: ["Disabling 'eqeqeq' is not allowed."],
8589
},
8690
{
8791
code: "//eslint-disable-next-line",
88-
options: ["*", "!b", "!c"],
89-
errors: ["Disabling '*,!b,!c' is not allowed."],
92+
options: ["*", "!no-undef", "!no-redeclare"],
93+
errors: ["Disabling '*,!no-undef,!no-redeclare' is not allowed."],
9094
},
9195

9296
{
@@ -100,11 +104,12 @@ tester.run("no-restricted-disable", rule, {
100104
],
101105
},
102106
{
103-
code: "/*eslint-disable a, b, react/a, react/b*/",
104-
options: ["react/*"],
107+
code:
108+
"/*eslint-disable no-undef, no-redeclare, foo/no-undef, foo/no-redeclare*/",
109+
options: ["foo/*"],
105110
errors: [
106-
"Disabling 'react/a' is not allowed.",
107-
"Disabling 'react/b' is not allowed.",
111+
"Disabling 'foo/no-undef' is not allowed.",
112+
"Disabling 'foo/no-redeclare' is not allowed.",
108113
],
109114
},
110115
],

tests/lib/rules/no-unlimited-disable.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ const tester = new RuleTester()
1111
tester.run("no-unlimited-disable", rule, {
1212
valid: [
1313
"/*eslint-enable*/",
14-
"/*eslint-disable foo*/",
15-
"//eslint-disable-line foo",
16-
"//eslint-disable-next-line foo",
17-
"var foo;\n//eslint-disable-line foo",
14+
"/*eslint-disable eqeqeq*/",
15+
"//eslint-disable-line eqeqeq",
16+
"//eslint-disable-next-line eqeqeq",
17+
"var foo;\n//eslint-disable-line eqeqeq",
1818
],
1919
invalid: [
2020
{

tests/lib/rules/no-unused-disable.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,17 +409,18 @@ var a = b//eslint-disable-line no-undef`,
409409
/*eslint-disable
410410
no-undef,
411411
no-unused-vars,
412-
xxxx
412+
eqeqeq
413413
*/
414414
var a = b
415415
/*eslint-enable*/`,
416416
errors: [
417417
{
418-
message: "'xxxx' rule is disabled but never reported.",
418+
message:
419+
"'eqeqeq' rule is disabled but never reported.",
419420
line: 5,
420421
column: 5,
421422
endLine: 5,
422-
endColumn: 9,
423+
endColumn: 11,
423424
},
424425
],
425426
},

0 commit comments

Comments
 (0)