diff --git a/tests/lib/rules/no-else-return.js b/tests/lib/rules/no-else-return.js index d081de88fbb2..976f5c12bbca 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: true }], + 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: true }], + 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: true }], + 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: true }], + 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: true }], + errors: [{ message: "Unnecessary 'else' after 'return'.", type: "IfStatement" }] } ] });