From 29a8c68c5d05181256c3422326b8001086de672d Mon Sep 17 00:00:00 2001 From: Mike Del Tito Date: Fri, 28 May 2021 17:13:34 -0400 Subject: [PATCH] feat(rules): add no-multiple-empty-lines rule This prevents multiple empty/blank lines, which comes up semi-often in code review Ref: LOG-9871 --- .eslintrc.json | 1 + test/failures.js | 13 +++++++++++++ test/fixtures/no-multiple-empty-lines-fixture | 8 ++++++++ 3 files changed, 22 insertions(+) create mode 100644 test/fixtures/no-multiple-empty-lines-fixture diff --git a/.eslintrc.json b/.eslintrc.json index a42e589..84e3de7 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -133,6 +133,7 @@ }], "no-loop-func": 2, "no-mixed-spaces-and-tabs": 2, + "no-multiple-empty-lines": [2, {"max": 1}], "no-multi-spaces": 2, "no-multi-str": 2, "no-native-reassign": 0, diff --git a/test/failures.js b/test/failures.js index bde504b..b01ae6a 100644 --- a/test/failures.js +++ b/test/failures.js @@ -30,6 +30,19 @@ test('Invalid linting for larger code blocks read from fixtures', async (t) => { ) }) + t.test('no-multiple-empty-lines', async (t) => { + const result = cli.executeOnFiles(['no-multiple-empty-lines-fixture']) + t.equal(result.errorCount, 1, 'error count') + const messages = result.results[0].messages + + t.equal(messages[0].ruleId, 'no-multiple-empty-lines', 'multiple empty found') + t.match( + messages[0].message + , /more than 1 blank line not allowed/ig + , 'message expected multiple empty' + ) + }) + t.test('no-debugger', async (t) => { const result = cli.executeOnFiles(['no-debugger-fixture']) t.equal(result.errorCount, 1, 'error count') diff --git a/test/fixtures/no-multiple-empty-lines-fixture b/test/fixtures/no-multiple-empty-lines-fixture new file mode 100644 index 0000000..39cd716 --- /dev/null +++ b/test/fixtures/no-multiple-empty-lines-fixture @@ -0,0 +1,8 @@ +'use strict' + +module.exports = fooBar + + +function fooBar() { + return true +}