From 7867fcdb25b06a82f353cb9950fad4d7628cfdc7 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Mon, 4 Sep 2017 14:04:56 +0100 Subject: [PATCH] Update: Add test and move existing tests for #9228 --- tests/lib/rules/no-else-return.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/lib/rules/no-else-return.js b/tests/lib/rules/no-else-return.js index d081de88fbb2..b3444ece38ad 100644 --- a/tests/lib/rules/no-else-return.js +++ b/tests/lib/rules/no-else-return.js @@ -96,6 +96,18 @@ ruleTester.run("no-else-return", rule, { output: "function foo9() {if (x) { return true; } else if (y) { return true; } notAReturn(); }", errors: [{ message: "Unnecessary 'else' after 'return'.", type: "BlockStatement" }] }, + { + code: "function foo9a() {if (x) { return true; } else if (y) { return true; } else { notAReturn(); } }", + output: "function foo9a() {if (x) { return true; } if (y) { return true; } else { notAReturn(); } }", + options: [{ allowElseIf: false }], + errors: [{ message: "Unnecessary 'else' after 'return'.", type: "IfStatement" }] + }, + { + code: "function foo9b() {if (x) { return true; } if (y) { return true; } else { notAReturn(); } }", + output: "function foo9b() {if (x) { return true; } if (y) { return true; } notAReturn(); }", + options: [{ allowElseIf: false }], + errors: [{ message: "Unnecessary 'else' after 'return'.", type: "BlockStatement" }] + }, { code: "function foo10() { if (foo) return bar; else (foo).bar(); }", output: "function foo10() { if (foo) return bar; (foo).bar(); }", @@ -140,6 +152,24 @@ ruleTester.run("no-else-return", rule, { code: "function foo18() { if (foo) return function() {} \nelse [1, 2, 3].map(bar) }", output: null, errors: [{ message: "Unnecessary 'else' after 'return'.", type: "ExpressionStatement" }] + }, + { + code: "function foo19() { if (true) { return x; } else if (false) { return y; } }", + output: "function foo19() { if (true) { return x; } if (false) { return y; } }", + options: [{ allowElseIf: false }], + errors: [{ message: "Unnecessary 'else' after 'return'.", type: "IfStatement" }] + }, + { + code: "function foo20() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } }", + output: "function foo20() {if (x) { return true; } if (y) { notAReturn() } else { notAReturn(); } }", + options: [{ allowElseIf: false }], + errors: [{ message: "Unnecessary 'else' after 'return'.", type: "IfStatement" }] + }, + { + code: "function foo21() { var x = true; if (x) { return x; } else if (x === false) { return false; } }", + output: "function foo21() { var x = true; if (x) { return x; } if (x === false) { return false; } }", + options: [{ allowElseIf: false }], + errors: [{ message: "Unnecessary 'else' after 'return'.", type: "IfStatement" }] } ] });