From 99969750c2fcda1f39d2b6b3cb3176619a965c73 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 | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/tests/lib/rules/no-else-return.js b/tests/lib/rules/no-else-return.js index d081de88fbb2..a6030ced92cf 100644 --- a/tests/lib/rules/no-else-return.js +++ b/tests/lib/rules/no-else-return.js @@ -23,10 +23,8 @@ ruleTester.run("no-else-return", rule, { "function foo() { if (true) { if (false) { return x; } } else { return y; } }", "function foo() { if (true) { return x; } return y; }", "function foo() { if (true) { for (;;) { return x; } } else { return y; } }", - "function foo() { var x = true; if (x) { return x; } else if (x === false) { return false; } }", "function foo() { if (true) notAReturn(); else return y; }", "function foo() {if (x) { notAReturn(); } else if (y) { return true; } else { notAReturn(); } }", - "function foo() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } }", "if (0) { if (0) {} else {} } else {}", ` function foo() { @@ -93,7 +91,12 @@ ruleTester.run("no-else-return", rule, { }, { code: "function foo9() {if (x) { return true; } else if (y) { return true; } else { notAReturn(); } }", - output: "function foo9() {if (x) { return true; } else if (y) { return true; } notAReturn(); }", + output: "function foo9() {if (x) { return true; } if (y) { return true; } else { notAReturn(); } }", + 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(); }", errors: [{ message: "Unnecessary 'else' after 'return'.", type: "BlockStatement" }] }, { @@ -140,6 +143,21 @@ 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; } }", + 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(); } }", + 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; } }", + errors: [{ message: "Unnecessary 'else' after 'return'.", type: "IfStatement" }] } ] });