-
Notifications
You must be signed in to change notification settings - Fork 200
Expand file tree
/
Copy pathbuildCommitSpec.js
More file actions
159 lines (138 loc) · 4.43 KB
/
Copy pathbuildCommitSpec.js
File metadata and controls
159 lines (138 loc) · 4.43 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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('with ticketNumberSuffix', () => {
it('should be visible', () => {
const answersTicketNumberSuffix = {
...answers,
ticketNumber: '12345',
};
const options = {
allowTicketNumber: true,
ticketNumberSuffix: '@@@ ',
};
expect(buildCommit(answersTicketNumberSuffix, options)).toEqual('feat(app): 12345@@@ this is a new feature');
});
});
describe('with ticketNumberPosition', () => {
it('should be same', () => {
const answersTicketNumberSuffix = {
...answers,
ticketNumber: '12345',
};
const options = {
allowTicketNumber: true,
ticketNumberPosition: 'standard',
};
expect(buildCommit(answersTicketNumberSuffix, options)).toEqual('feat(app): 12345 this is a new feature');
});
it('should be "first"', () => {
const answersTicketNumberSuffix = {
...answers,
ticketNumber: '12345',
};
const options = {
allowTicketNumber: true,
ticketNumberPosition: 'first',
};
expect(buildCommit(answersTicketNumberSuffix, options)).toEqual('12345 feat(app): this is a new feature');
});
it('should be "last"', () => {
const answersTicketNumberSuffix = {
...answers,
ticketNumber: '12345',
};
const options = {
allowTicketNumber: true,
ticketNumberPrefix: ' ',
ticketNumberSuffix: '',
ticketNumberPosition: 'last',
};
expect(buildCommit(answersTicketNumberSuffix, options)).toEqual('feat(app): this is a new feature 12345');
});
});
});