Skip to content

Commit bcb383e

Browse files
committed
fix: harden body-leading-blank implementation
1 parent e9fa402 commit bcb383e

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

source/rules/body-leading-blank.js

+13-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
export default (parsed, when) => {
2+
// flunk if no body is found
3+
if (!parsed.body) {
4+
return [true];
5+
}
6+
27
const negated = when === 'never';
8+
39
// get complete body split into lines
4-
const lines = (parsed.raw || '').split('\n').slice(1);
5-
// check if the first line of body (if any) is empty
6-
const leadingBlank =
7-
lines.length > 0 ?
8-
lines[0].length === 0 :
9-
true;
10+
const lines = (parsed.raw || '').split(/\r|\n/).slice(1);
11+
const [leading] = lines;
12+
13+
// check if the first line of body is empty
14+
const succeeds = leading === '';
15+
1016
return [
11-
negated ? !leadingBlank : leadingBlank,
17+
negated ? !succeeds : succeeds,
1218
[
1319
'body',
1420
negated ? 'may not' : 'must',

source/rules/body-leading-blank.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ test('with simple message should succeed for empty keyword', t => {
2020
t.is(actual, expected);
2121
});
2222

23-
test.failing('with simple message should succeed for "never"', t => {
23+
test('with simple message should succeed for "never"', t => {
2424
const [actual] = bodyLeadingBlank(parsed.simple, 'never');
2525
const expected = true;
2626
t.is(actual, expected);

0 commit comments

Comments
 (0)