mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-01-12 22:45:52 +08:00
109 lines
3.5 KiB
JavaScript
109 lines
3.5 KiB
JavaScript
/* global describe: false, beforeEach: false, afterEach: false, it: false, expect: false */
|
|
|
|
'use strict';
|
|
|
|
describe('changelog.js', function() {
|
|
var ch = require('./changelog');
|
|
|
|
describe('parseRawCommit', function() {
|
|
it('should parse raw commit', function() {
|
|
var msg = ch.parseRawCommit(
|
|
'9b1aff905b638aa274a5fc8f88662df446d374bd\n' +
|
|
'feat(scope): broadcast $destroy event on scope destruction\n' +
|
|
'perf testing shows that in chrome this change adds 5-15% overhead\n' +
|
|
'when destroying 10k nested scopes where each scope has a $destroy listener\n');
|
|
|
|
expect(msg.type).toBe('feat');
|
|
expect(msg.hash).toBe('9b1aff905b638aa274a5fc8f88662df446d374bd');
|
|
expect(msg.subject).toBe('broadcast $destroy event on scope destruction');
|
|
expect(msg.body).toBe('perf testing shows that in chrome this change adds 5-15% overhead\n' +
|
|
'when destroying 10k nested scopes where each scope has a $destroy listener\n');
|
|
expect(msg.component).toBe('scope');
|
|
});
|
|
|
|
|
|
it('should parse closed issues', function() {
|
|
var msg = ch.parseRawCommit(
|
|
'13f31602f396bc269076ab4d389cfd8ca94b20ba\n' +
|
|
'feat(ng-list): Allow custom separator\n' +
|
|
'bla bla bla\n\n' +
|
|
'Closes #123\nCloses #25\n');
|
|
|
|
expect(msg.closes).toEqual([123, 25]);
|
|
});
|
|
|
|
|
|
it('should parse breaking changes', function() {
|
|
var msg = ch.parseRawCommit(
|
|
'13f31602f396bc269076ab4d389cfd8ca94b20ba\n' +
|
|
'feat(ng-list): Allow custom separator\n' +
|
|
'bla bla bla\n\n' +
|
|
'BREAKING CHANGE: first breaking change\nsomething else\n' +
|
|
'another line with more info\n');
|
|
|
|
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);
|
|
});
|
|
});
|
|
});
|