Skip to content

Commit

Permalink
feat: allow empty unreleased section (#67)
Browse files Browse the repository at this point in the history
* allow 'empty' unreleased changelog entries.

* update tests/fixtures to account for 'empty'/'non-empty' changelog entries.
  • Loading branch information
jrmykolyn authored and ungoldman committed Jan 4, 2018
1 parent cb5585f commit e8da64b
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 4 deletions.
4 changes: 4 additions & 0 deletions bin/lib/get-defaults.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,14 @@ function getDefaults (workPath, callback) {
changelogParser(logPath, function (err, result) {
if (err) return callback(err)

// check for 'unreleased' section in CHANGELOG: allow sections which do not include a body (eg. 'Added', 'Changed', etc.)

var unreleased = result.versions.filter(function (release) {
return release.title && release.title.toLowerCase
? release.title.toLowerCase().indexOf('unreleased') !== -1
: false
}).filter(function (release) {
return !!release.body
})

if (unreleased.length > 0) {
Expand Down
1 change: 1 addition & 0 deletions test/fixtures/unreleased/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
## Unreleased
- apples

## 1.0.0
- bananas
14 changes: 10 additions & 4 deletions test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,22 @@ test('should return error if changelog version !== package.json version', functi
})
})

test('should return error if unreleased section exists', function (t) {
t.plan(2)
test('should return error if a non-empty unreleased section exists', function (t) {
var errStr = 'Unreleased changes detected in CHANGELOG.md, aborting'
t.plan(1)
ghRelease({
workpath: fixture('unreleased')
}, function (err, result) {
t.deepEqual(err.message, 'Unreleased changes detected in CHANGELOG.md, aborting')
t.deepEqual(err.message, errStr)
})
})

test('should allow empty unreleased sections', function (t) {
var errStr = 'Unreleased changes detected in CHANGELOG.md, aborting'
t.plan(1)
ghRelease({
workpath: fixture('unreleased-alt')
}, function (err, result) {
t.deepEqual(err.message, 'Unreleased changes detected in CHANGELOG.md, aborting')
t.notEqual(err.message, errStr)
})
})

0 comments on commit e8da64b

Please sign in to comment.