-
Notifications
You must be signed in to change notification settings - Fork 200
Expand file tree
/
Copy pathbuildCommitSpec.js
More file actions
136 lines (118 loc) · 4.07 KB
/
Copy pathbuildCommitSpec.js
File metadata and controls
136 lines (118 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
const buildCommit = require('../buildCommit');
describe('buildCommit()', () => {
const answers = {
type: 'feat',
scope: 'app',
subject: 'this is a new feature',
};
it('subject with default subject separator', () => {
const options = {};
expect(buildCommit(answers, options)).toEqual('feat(app): this is a new feature');
});
it('subject with custom subject separator option', () => {
const options = {
subjectSeparator: ' - ',
};
expect(buildCommit(answers, options)).toEqual('feat(app) - this is a new feature');
});
it('subject 1 empty character separator', () => {
const options = {
subjectSeparator: ' ',
};
expect(buildCommit(answers, options)).toEqual('feat(app) this is a new feature');
});
describe('without scope', () => {
it('subject without scope', () => {
const answersNoScope = {
type: 'feat',
subject: 'this is a new feature',
};
const options = {};
expect(buildCommit(answersNoScope, options)).toEqual('feat: this is a new feature');
});
it('subject without scope', () => {
const answersNoScope = {
type: 'feat',
subject: 'this is a new feature',
};
const options = {
subjectSeparator: ' - ',
};
expect(buildCommit(answersNoScope, options)).toEqual('feat - this is a new feature');
});
});
describe('type prefix and type suffix', () => {
it('subject with both', () => {
const answersNoScope = {
type: 'feat',
subject: 'this is a new feature',
};
const options = {
typePrefix: '[',
typeSuffix: ']',
subjectSeparator: ' ',
};
expect(buildCommit(answersNoScope, options)).toEqual('[feat] this is a new feature');
});
});
describe('pipe replaced with new line', () => {
// I know it looks weird on tests but this proves to have the correct breakline inserted.
const expecteMessage = `feat: this is a new feature\n
body with new line now
body line2
ISSUES CLOSED: footer with new line
line 2`;
it('should add breakline for body and footer', () => {
const answersNoScope = {
type: 'feat',
subject: 'this is a new feature',
body: 'body with new line now|body line2',
footer: 'footer with new line|line 2',
};
const options = {};
expect(buildCommit(answersNoScope, options)).toEqual(expecteMessage);
});
it('should override breakline character with option breaklineChar', () => {
const answersNoScope = {
type: 'feat',
subject: 'this is a new feature',
body: 'body with new line now@@@body line2',
footer: 'footer with new line@@@line 2',
};
const options = {
breaklineChar: '@@@',
};
expect(buildCommit(answersNoScope, options)).toEqual(expecteMessage);
});
});
describe('wrap only separate line with 100 characters limit', () => {
// I know it looks weird on tests but this proves to have the correct breakline inserted.
const expecteMessage = `docs: update docs\n
1. update description
2. add commit message format section
3. add docker section
4. add commit helper tool section`;
it('should add breakline for body and wrap each line separately', () => {
const answersNoScope = {
type: 'docs',
subject: 'update docs',
body:
'1. update description|2. add commit message format section|3. add docker section|4. add commit helper tool section',
};
const options = {};
expect(buildCommit(answersNoScope, options)).toEqual(expecteMessage);
});
it('should add breakline for body and wrap each line separately with option breaklineChar', () => {
const answersNoScope = {
type: 'docs',
subject: 'update docs',
body:
'1. update description@@@2. add commit message format section@@@3. add docker section@@@4. add commit helper tool section',
};
const options = {
breaklineChar: '@@@',
};
expect(buildCommit(answersNoScope, options)).toEqual(expecteMessage);
});
});
});