diff --git a/package.json b/package.json index ed15f61d02bb..496f6a48b732 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", + "levn": "^0.4.1", "lodash": "^4.17.14", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", diff --git a/tests/lib/linter/linter.js b/tests/lib/linter/linter.js index 74d231ed1ff7..c1261dfcf0b8 100644 --- a/tests/lib/linter/linter.js +++ b/tests/lib/linter/linter.js @@ -1754,6 +1754,23 @@ describe("Linter", () => { }); }); + describe("when evaluating code with comments that contain escape sequences", () => { + const code = '/* eslint max-len: ["error", 1, { ignoreComments: true, ignorePattern: "console\\.log\\\\(" }] */\nconsole.log("test");\nvar a = "test2";'; + + it("should validate correctly", () => { + const config = { rules: {} }; + + const messages = linter.verify(code, config, filename); + + assert.strictEqual(messages.length, 1); + assert.strictEqual(messages[0].ruleId, "max-len"); + assert.strictEqual(messages[0].message, "This line has a length of 16. Maximum allowed is 1."); + assert.strictEqual(messages[0].line, 3); + assert.strictEqual(messages[0].column, 1); + assert.include(messages[0].nodeType, "Program"); + }); + }); + describe("when evaluating code with comments to enable multiple rules", () => { const code = "/*eslint no-alert:1 no-console:1*/ alert('test'); console.log('test');";