@@ -41,7 +41,7 @@ func TestChangelog(t *testing.T) {
41
41
Tag : "feat" ,
42
42
TagString : "Features" ,
43
43
Print : true ,
44
- Subject : "my first commit" ,
44
+ Subject : "my first commit" ,
45
45
MessageBlocks : map [string ][]shared.MessageBlock {},
46
46
},
47
47
},
@@ -66,7 +66,7 @@ func TestChangelog(t *testing.T) {
66
66
Tag : "feat" ,
67
67
TagString : "Features" ,
68
68
Print : true ,
69
- Subject : "my first commit" ,
69
+ Subject : "my first commit" ,
70
70
MessageBlocks : map [string ][]shared.MessageBlock {},
71
71
},
72
72
},
@@ -92,7 +92,7 @@ func TestChangelog(t *testing.T) {
92
92
Tag : "feat" ,
93
93
TagString : "Features" ,
94
94
Print : true ,
95
- Subject : "my first commit" ,
95
+ Subject : "my first commit" ,
96
96
MessageBlocks : map [string ][]shared.MessageBlock {},
97
97
},
98
98
{
@@ -107,10 +107,10 @@ func TestChangelog(t *testing.T) {
107
107
TagString : "Features" ,
108
108
Print : true ,
109
109
ParsedBreakingChangeMessage : "change api to v2" ,
110
- IsBreaking : true ,
111
- Subject : "my first break" ,
110
+ IsBreaking : true ,
111
+ Subject : "my first break" ,
112
112
MessageBlocks : map [string ][]shared.MessageBlock {
113
- "body" : { shared.MessageBlock {
113
+ "body" : {shared.MessageBlock {
114
114
Label : "BREAKING CHANGE" ,
115
115
Content : "change api to v2" ,
116
116
},
@@ -141,10 +141,10 @@ func TestChangelog(t *testing.T) {
141
141
TagString : "Features" ,
142
142
Print : true ,
143
143
ParsedBreakingChangeMessage : "hey from the change" ,
144
- IsBreaking : true ,
145
- Subject : "my first break" ,
144
+ IsBreaking : true ,
145
+ Subject : "my first break" ,
146
146
MessageBlocks : map [string ][]shared.MessageBlock {
147
- "body" : { shared.MessageBlock {
147
+ "body" : {shared.MessageBlock {
148
148
Label : "BREAKING CHANGE" ,
149
149
Content : "hey from the change" ,
150
150
},
@@ -162,7 +162,7 @@ func TestChangelog(t *testing.T) {
162
162
Tag : "feat" ,
163
163
TagString : "Features" ,
164
164
Print : true ,
165
- Subject : "my first commit" ,
165
+ Subject : "my first commit" ,
166
166
MessageBlocks : map [string ][]shared.MessageBlock {},
167
167
},
168
168
{
@@ -176,7 +176,7 @@ func TestChangelog(t *testing.T) {
176
176
Tag : "feat" ,
177
177
TagString : "Features" ,
178
178
Print : true ,
179
- Subject : "my second commit" ,
179
+ Subject : "my second commit" ,
180
180
MessageBlocks : map [string ][]shared.MessageBlock {},
181
181
},
182
182
{
@@ -191,10 +191,10 @@ func TestChangelog(t *testing.T) {
191
191
TagString : "Features" ,
192
192
Print : true ,
193
193
ParsedBreakingChangeMessage : "change api to v2" ,
194
- IsBreaking : true ,
195
- Subject : "my new commit" ,
194
+ IsBreaking : true ,
195
+ Subject : "my new commit" ,
196
196
MessageBlocks : map [string ][]shared.MessageBlock {
197
- "body" : { shared.MessageBlock {
197
+ "body" : {shared.MessageBlock {
198
198
Label : "BREAKING CHANGE" ,
199
199
Content : "change api to v2" ,
200
200
}},
@@ -212,9 +212,9 @@ func TestChangelog(t *testing.T) {
212
212
TagString : "Features" ,
213
213
Print : true ,
214
214
ParsedBreakingChangeMessage : "my next commit" ,
215
- IsBreaking : true ,
216
- Subject : "my next commit" ,
217
- MessageBlocks : map [string ][]shared.MessageBlock {},
215
+ IsBreaking : true ,
216
+ Subject : "my next commit" ,
217
+ MessageBlocks : map [string ][]shared.MessageBlock {},
218
218
},
219
219
},
220
220
},
@@ -256,3 +256,93 @@ func TestChangelog(t *testing.T) {
256
256
}
257
257
258
258
}
259
+
260
+ func TestChangelogExtensions (t * testing.T ) {
261
+
262
+ testConfigs := []struct {
263
+ testCase string
264
+ result * shared.GeneratedChangelog
265
+ releaseConfig * config.ReleaseConfig
266
+ }{
267
+ {
268
+ testCase : "docker" ,
269
+ releaseConfig : & config.ReleaseConfig {
270
+ Changelog : config.ChangelogConfig {
271
+ Docker : config.ChangelogDocker {
272
+ Latest : true ,
273
+ Repository : "mydocker.de" ,
274
+ },
275
+ NPM : config.ChangelogNPM {},
276
+ },
277
+ },
278
+ result : & shared.GeneratedChangelog {Title : "v1.0.0 (2019-07-19)" , Content : "# v1.0.0 (2019-07-19)\n ### Features\n * **`internal/changelog`** my first commit ([1234566](https://commit.url))\n \n ## Docker image\n \n New docker image is released under `mydocker.de:1.0.0`\n \n ### Usage\n \n `docker run mydocker.de:1.0.0`\n \n or\n \n `docker run mydocker.de:latest`\n " },
279
+ },
280
+ {
281
+ testCase : "npm" ,
282
+ releaseConfig : & config.ReleaseConfig {
283
+ Changelog : config.ChangelogConfig {
284
+ Docker : config.ChangelogDocker {},
285
+ NPM : config.ChangelogNPM {
286
+ Repository : "https://github.com/Nightapes/ngx-validators/packages/102720" ,
287
+ PackageName : "ngx-validators" ,
288
+ },
289
+ },
290
+ },
291
+ result :
& shared.
GeneratedChangelog {
Title :
"v1.0.0 (2019-07-19)" ,
Content :
"# v1.0.0 (2019-07-19)\n ### Features\n * **`internal/changelog`** my first commit ([1234566](https://commit.url))\n \n ## NodeJS Package\n \n New NodeJS package is released under [ngx-validators](https://github.com/Nightapes/ngx-validators/packages/102720)\n \n ### Usage\n \n `yarn add [email protected] `\n \n or\n \n `npm install -save [email protected] `\n \n " },
292
+ },
293
+ }
294
+
295
+ analyzedCommits := map [shared.Release ][]shared.AnalyzedCommit {
296
+ "minor" : {
297
+ {
298
+ Commit : shared.Commit {
299
+ Message : "feat(internal/changelog): my first commit" ,
300
+ Author : "me" ,
301
+ Hash : "12345667" ,
302
+ },
303
+ Scope : "internal/changelog" ,
304
+ ParsedMessage : "my first commit" ,
305
+ Tag : "feat" ,
306
+ TagString : "Features" ,
307
+ Print : true ,
308
+ Subject : "my first commit" ,
309
+ MessageBlocks : map [string ][]shared.MessageBlock {},
310
+ },
311
+ },
312
+ }
313
+
314
+ for _ , config := range testConfigs {
315
+ t .Run (config .testCase , func (t * testing.T ) {
316
+ templateConfig := shared.ChangelogTemplateConfig {
317
+ CommitURL : "https://commit.url" ,
318
+ CompareURL : "https://compare.url" ,
319
+ Hash : "hash" ,
320
+ Version : "1.0.0" ,
321
+ }
322
+ cl := changelog .New (config .releaseConfig , []analyzer.Rule {
323
+ {
324
+ Tag : "feat" ,
325
+ TagString : "Features" ,
326
+ Release : "minor" ,
327
+ Changelog : true ,
328
+ },
329
+ {
330
+ Tag : "fix" ,
331
+ TagString : "Bug fixes" ,
332
+ Release : "patch" ,
333
+ Changelog : true ,
334
+ },
335
+ {
336
+ Tag : "build" ,
337
+ TagString : "Build" ,
338
+ Release : "none" ,
339
+ Changelog : false ,
340
+ },
341
+ }, time .Date (2019 , 7 , 19 , 0 , 0 , 0 , 0 , time .UTC ))
342
+ generatedChangelog , err := cl .GenerateChangelog (templateConfig , analyzedCommits )
343
+ assert .NoError (t , err )
344
+ assert .Equalf (t , config .result , generatedChangelog , "Testcase %s should have generated changelog" , config .testCase )
345
+ })
346
+ }
347
+
348
+ }
0 commit comments