From daf6f2690a4745f46709467d133cc21f80a5bb62 Mon Sep 17 00:00:00 2001 From: alberto Date: Sat, 18 Feb 2017 20:35:10 +0100 Subject: [PATCH] Fix: check output in RuleTester when errors is a number (fixes #7640) (#8097) --- lib/testers/rule-tester.js | 9 ++++----- tests/lib/rules/spaced-comment.js | 24 ++++++++++++------------ tests/lib/testers/rule-tester.js | 14 ++++++++++++++ 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/lib/testers/rule-tester.js b/lib/testers/rule-tester.js index e8442f079fe..16e4637890e 100644 --- a/lib/testers/rule-tester.js +++ b/lib/testers/rule-tester.js @@ -494,13 +494,12 @@ RuleTester.prototype = { assert.fail(messages[i], null, "Error should be a string or object."); } } + } - if (item.hasOwnProperty("output")) { - const fixResult = SourceCodeFixer.applyFixes(eslint.getSourceCode(), messages); - - assert.equal(fixResult.output, item.output, "Output is incorrect."); - } + if (item.hasOwnProperty("output")) { + const fixResult = SourceCodeFixer.applyFixes(eslint.getSourceCode(), messages); + assert.equal(fixResult.output, item.output, "Output is incorrect."); } assertASTDidntChange(result.beforeAST, result.afterAST); diff --git a/tests/lib/rules/spaced-comment.js b/tests/lib/rules/spaced-comment.js index 4639f3d37bc..04359158de0 100644 --- a/tests/lib/rules/spaced-comment.js +++ b/tests/lib/rules/spaced-comment.js @@ -385,18 +385,6 @@ ruleTester.run("spaced-comment", rule, { markers: ["/", "!<"] }] }, - { - code: invalidShebangProgram, - output: "#!/path/to/node\n#!/second/shebang\nvar a = 3;", - errors: 1, - options: ["always"] - }, - { - code: invalidShebangProgram, - output: "#!/path/to/node\n#!/second/shebang\nvar a = 3;", - errors: 1, - options: ["never"] - }, { code: "var a = 1; /* A valid comment starting with space */", output: "var a = 1; /*A valid comment starting with space */", @@ -584,6 +572,18 @@ ruleTester.run("spaced-comment", rule, { message: "Unexpected space or tab before '*/' in comment.", type: "Block" }] + }, + + // Parser errors + { + code: invalidShebangProgram, + errors: 1, + options: ["always"] + }, + { + code: invalidShebangProgram, + errors: 1, + options: ["never"] } ] diff --git a/tests/lib/testers/rule-tester.js b/tests/lib/testers/rule-tester.js index e7a44dda6bf..8342a9f24f5 100644 --- a/tests/lib/testers/rule-tester.js +++ b/tests/lib/testers/rule-tester.js @@ -181,6 +181,20 @@ describe("RuleTester", () => { }, /Output is incorrect/); }); + it("should throw an error when the expected output doesn't match and errors is just a number", () => { + + assert.throws(() => { + ruleTester.run("no-var", require("../../fixtures/testers/rule-tester/no-var"), { + valid: [ + "bar = baz;" + ], + invalid: [ + { code: "var foo = bar;", output: "foo = bar", errors: 1 } + ] + }); + }, /Output is incorrect/); + }); + it("should throw an error if invalid code specifies wrong type", () => { assert.throws(() => {