Skip to content

Commit e8da64b

Browse files
jrmykolynungoldman
authored andcommitted
feat: allow empty unreleased section (#67)
* allow 'empty' unreleased changelog entries. * update tests/fixtures to account for 'empty'/'non-empty' changelog entries.
1 parent cb5585f commit e8da64b

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

bin/lib/get-defaults.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,14 @@ function getDefaults (workPath, callback) {
1919
changelogParser(logPath, function (err, result) {
2020
if (err) return callback(err)
2121

22+
// check for 'unreleased' section in CHANGELOG: allow sections which do not include a body (eg. 'Added', 'Changed', etc.)
23+
2224
var unreleased = result.versions.filter(function (release) {
2325
return release.title && release.title.toLowerCase
2426
? release.title.toLowerCase().indexOf('unreleased') !== -1
2527
: false
28+
}).filter(function (release) {
29+
return !!release.body
2630
})
2731

2832
if (unreleased.length > 0) {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
## Unreleased
2+
- apples
23

34
## 1.0.0
45
- bananas

test/index.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,22 @@ test('should return error if changelog version !== package.json version', functi
2121
})
2222
})
2323

24-
test('should return error if unreleased section exists', function (t) {
25-
t.plan(2)
24+
test('should return error if a non-empty unreleased section exists', function (t) {
25+
var errStr = 'Unreleased changes detected in CHANGELOG.md, aborting'
26+
t.plan(1)
2627
ghRelease({
2728
workpath: fixture('unreleased')
2829
}, function (err, result) {
29-
t.deepEqual(err.message, 'Unreleased changes detected in CHANGELOG.md, aborting')
30+
t.deepEqual(err.message, errStr)
3031
})
32+
})
33+
34+
test('should allow empty unreleased sections', function (t) {
35+
var errStr = 'Unreleased changes detected in CHANGELOG.md, aborting'
36+
t.plan(1)
3137
ghRelease({
3238
workpath: fixture('unreleased-alt')
3339
}, function (err, result) {
34-
t.deepEqual(err.message, 'Unreleased changes detected in CHANGELOG.md, aborting')
40+
t.notEqual(err.message, errStr)
3541
})
3642
})

0 commit comments

Comments
 (0)