Skip to content

Commit 2f0c461

Browse files
authored
rules: add line-after-title rule (#7)
This rule ensures that the body is not empty and that there is a blank line after the commit title Semver: major
1 parent 4ad6edc commit 2f0c461

File tree

2 files changed

+41
-6
lines changed

2 files changed

+41
-6
lines changed

lib/rules/line-after-title.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
'use strict'
2+
3+
const id = 'line-after-title'
4+
5+
module.exports = {
6+
id: id
7+
, meta: {
8+
description: 'enforce a blank newline after the commit title'
9+
, recommended: true
10+
}
11+
, defaults: {}
12+
, options: {}
13+
, validate: (context, rule) => {
14+
// all commits should have a body and a blank line after the title
15+
if (!context.body.length || context.body[0]) {
16+
context.report({
17+
id: id
18+
, message: 'blank line expected after title'
19+
, string: context.body.length ? context.body[0] : ''
20+
, line: 1
21+
, column: 0
22+
, level: 'fail'
23+
})
24+
return
25+
}
26+
27+
context.report({
28+
id: id
29+
, message: 'blank line after title'
30+
, string: ''
31+
, level: 'pass'
32+
})
33+
}
34+
}

test/validator.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,12 +211,13 @@ test('Validator - real commits', (t) => {
211211
const filtered = msgs.filter((item) => {
212212
return item.level === 'fail'
213213
})
214-
tt.equal(filtered.length, 2, 'messages.length')
215-
tt.equal(filtered[0].id, 'pr-url', 'message id')
216-
tt.equal(filtered[0].string, '#5546', 'message string')
217-
tt.equal(filtered[1].id, 'subsystem', 'message id')
218-
tt.equal(filtered[1].line, 0, 'line')
219-
tt.equal(filtered[1].column, 0, 'column')
214+
tt.equal(filtered.length, 3, 'messages.length')
215+
tt.equal(filtered[0].id, 'line-after-title', 'message id')
216+
tt.equal(filtered[1].id, 'pr-url', 'message id')
217+
tt.equal(filtered[1].string, '#5546', 'message string')
218+
tt.equal(filtered[2].id, 'subsystem', 'message id')
219+
tt.equal(filtered[2].line, 0, 'line')
220+
tt.equal(filtered[2].column, 0, 'column')
220221
tt.end()
221222
})
222223
})

0 commit comments

Comments
 (0)