diff --git a/changelog.js b/changelog.js index be32b4a46cb3..25e4c4fe8f0a 100755 --- a/changelog.js +++ b/changelog.js @@ -202,6 +202,7 @@ var generate = function(version, file) { // publish for testing exports.parseRawCommit = parseRawCommit; +exports.printSection = printSection; // hacky start if not run by jasmine :-D if (process.argv.join('').indexOf('jasmine-node') === -1) { diff --git a/changelog.spec.js b/changelog.spec.js index f8f4a6cc19e0..03a279f067ad 100644 --- a/changelog.spec.js +++ b/changelog.spec.js @@ -1,4 +1,4 @@ -/* global describe: false, it: false, expect: false */ +/* global describe: false, beforeEach: false, afterEach: false, it: false, expect: false */ 'use strict'; @@ -44,4 +44,65 @@ describe('changelog.js', function() { expect(msg.breaking).toEqual(' first breaking change\nsomething else\nanother line with more info\n'); }); }); + + describe('printSection', function() { + var output; + var streamMock = { + write: function(str) { + output += str; + } + }; + + beforeEach(function() { + output = ''; + }); + + it('should add a new line at the end of each breaking change list item ' + + 'when there is 1 item per component', function() { + var title = 'test'; + var printCommitLinks = false; + + var section = { + module1: [{subject: 'breaking change 1'}], + module2: [{subject: 'breaking change 2'}] + }; + var expectedOutput = + '\n' + '## test\n\n' + + '- **module1:** breaking change 1\n' + + '- **module2:** breaking change 2\n' + + '\n'; + + ch.printSection(streamMock, title, section, printCommitLinks); + expect(output).toBe(expectedOutput); + }); + + it('should add a new line at the end of each breaking change list item ' + + 'when there are multiple items per component', function() { + var title = 'test'; + var printCommitLinks = false; + + var section = { + module1: [ + {subject: 'breaking change 1.1'}, + {subject: 'breaking change 1.2'} + ], + module2: [ + {subject: 'breaking change 2.1'}, + {subject: 'breaking change 2.2'} + ] + }; + var expectedOutput = + '\n' + '## test\n\n' + + '- **module1:**\n' + + ' - breaking change 1.1\n' + + ' - breaking change 1.2\n' + + '- **module2:**\n' + + ' - breaking change 2.1\n' + + ' - breaking change 2.2\n' + + '\n'; + + ch.printSection(streamMock, title, section, printCommitLinks); + expect(output).toBe(expectedOutput); + }); + }); });