github.com/fredbi/git-chglog@v0.0.0-20190706071416-d35c598eac81/cmd/git-chglog/custom_template_builder_test.go (about) 1 package main 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestCustomTemplateBuilderDefault(t *testing.T) { 10 assert := assert.New(t) 11 builder := NewCustomTemplateBuilder() 12 13 out, err := builder.Build(&Answer{ 14 Style: styleGitHub, 15 CommitMessageFormat: fmtTypeScopeSubject.display, 16 Template: tplStandard.display, 17 IncludeMerges: true, 18 IncludeReverts: true, 19 }) 20 21 assert.Nil(err) 22 assert.Equal(`{{ range .Versions }} 23 <a name="{{ .Tag.Name }}"></a> 24 ## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }} ({{ datetime "2006-01-02" .Tag.Date }}) 25 26 {{ range .CommitGroups -}} 27 ### {{ .Title }} 28 29 {{ range .Commits -}} 30 * {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }} 31 {{ end }} 32 {{ end -}} 33 34 {{- if .RevertCommits -}} 35 ### Reverts 36 37 {{ range .RevertCommits -}} 38 * {{ .Revert.Header }} 39 {{ end }} 40 {{ end -}} 41 42 {{- if .MergeCommits -}} 43 ### Pull Requests 44 45 {{ range .MergeCommits -}} 46 * {{ .Header }} 47 {{ end }} 48 {{ end -}} 49 50 {{- if .NoteGroups -}} 51 {{ range .NoteGroups -}} 52 ### {{ .Title }} 53 54 {{ range .Notes }} 55 {{ .Body }} 56 {{ end }} 57 {{ end -}} 58 {{ end -}} 59 {{ end -}}`, out) 60 } 61 62 func TestCustomTemplateBuilderNone(t *testing.T) { 63 assert := assert.New(t) 64 builder := NewCustomTemplateBuilder() 65 66 out, err := builder.Build(&Answer{ 67 Style: styleNone, 68 CommitMessageFormat: fmtTypeScopeSubject.display, 69 Template: tplStandard.display, 70 IncludeMerges: true, 71 IncludeReverts: true, 72 }) 73 74 assert.Nil(err) 75 assert.Equal(`{{ range .Versions }} 76 ## {{ .Tag.Name }} ({{ datetime "2006-01-02" .Tag.Date }}) 77 78 {{ range .CommitGroups -}} 79 ### {{ .Title }} 80 81 {{ range .Commits -}} 82 * {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }} 83 {{ end }} 84 {{ end -}} 85 86 {{- if .RevertCommits -}} 87 ### Reverts 88 89 {{ range .RevertCommits -}} 90 * {{ .Revert.Header }} 91 {{ end }} 92 {{ end -}} 93 94 {{- if .MergeCommits -}} 95 ### Merges 96 97 {{ range .MergeCommits -}} 98 * {{ .Header }} 99 {{ end }} 100 {{ end -}} 101 102 {{- if .NoteGroups -}} 103 {{ range .NoteGroups -}} 104 ### {{ .Title }} 105 106 {{ range .Notes }} 107 {{ .Body }} 108 {{ end }} 109 {{ end -}} 110 {{ end -}} 111 {{ end -}}`, out) 112 } 113 114 func TestCustomTemplateBuilderSubjectOnly(t *testing.T) { 115 assert := assert.New(t) 116 builder := NewCustomTemplateBuilder() 117 118 out, err := builder.Build(&Answer{ 119 Style: styleNone, 120 CommitMessageFormat: fmtSubject.display, 121 Template: tplStandard.display, 122 IncludeMerges: true, 123 IncludeReverts: true, 124 }) 125 126 assert.Nil(err) 127 assert.Equal(`{{ range .Versions }} 128 ## {{ .Tag.Name }} ({{ datetime "2006-01-02" .Tag.Date }}) 129 130 {{ range .CommitGroups -}} 131 {{ range .Commits -}} 132 * {{ .Header }} 133 {{ end }} 134 {{ end -}} 135 136 {{- if .RevertCommits -}} 137 ### Reverts 138 139 {{ range .RevertCommits -}} 140 * {{ .Revert.Header }} 141 {{ end }} 142 {{ end -}} 143 144 {{- if .MergeCommits -}} 145 ### Merges 146 147 {{ range .MergeCommits -}} 148 * {{ .Header }} 149 {{ end }} 150 {{ end -}} 151 152 {{- if .NoteGroups -}} 153 {{ range .NoteGroups -}} 154 ### {{ .Title }} 155 156 {{ range .Notes }} 157 {{ .Body }} 158 {{ end }} 159 {{ end -}} 160 {{ end -}} 161 {{ end -}}`, out) 162 } 163 164 func TestCustomTemplateBuilderSubject(t *testing.T) { 165 assert := assert.New(t) 166 builder := NewCustomTemplateBuilder() 167 168 out, err := builder.Build(&Answer{ 169 Style: styleNone, 170 CommitMessageFormat: fmtTypeSubject.display, 171 Template: tplStandard.display, 172 IncludeMerges: true, 173 IncludeReverts: true, 174 }) 175 176 assert.Nil(err) 177 assert.Equal(`{{ range .Versions }} 178 ## {{ .Tag.Name }} ({{ datetime "2006-01-02" .Tag.Date }}) 179 180 {{ range .CommitGroups -}} 181 ### {{ .Title }} 182 183 {{ range .Commits -}} 184 * {{ .Subject }} 185 {{ end }} 186 {{ end -}} 187 188 {{- if .RevertCommits -}} 189 ### Reverts 190 191 {{ range .RevertCommits -}} 192 * {{ .Revert.Header }} 193 {{ end }} 194 {{ end -}} 195 196 {{- if .MergeCommits -}} 197 ### Merges 198 199 {{ range .MergeCommits -}} 200 * {{ .Header }} 201 {{ end }} 202 {{ end -}} 203 204 {{- if .NoteGroups -}} 205 {{ range .NoteGroups -}} 206 ### {{ .Title }} 207 208 {{ range .Notes }} 209 {{ .Body }} 210 {{ end }} 211 {{ end -}} 212 {{ end -}} 213 {{ end -}}`, out) 214 } 215 216 func TestCustomTemplateBuilderIgnoreReverts(t *testing.T) { 217 assert := assert.New(t) 218 builder := NewCustomTemplateBuilder() 219 220 out, err := builder.Build(&Answer{ 221 Style: styleNone, 222 CommitMessageFormat: fmtTypeSubject.display, 223 Template: tplStandard.display, 224 IncludeMerges: true, 225 IncludeReverts: false, 226 }) 227 228 assert.Nil(err) 229 assert.Equal(`{{ range .Versions }} 230 ## {{ .Tag.Name }} ({{ datetime "2006-01-02" .Tag.Date }}) 231 232 {{ range .CommitGroups -}} 233 ### {{ .Title }} 234 235 {{ range .Commits -}} 236 * {{ .Subject }} 237 {{ end }} 238 {{ end -}} 239 240 {{- if .MergeCommits -}} 241 ### Merges 242 243 {{ range .MergeCommits -}} 244 * {{ .Header }} 245 {{ end }} 246 {{ end -}} 247 248 {{- if .NoteGroups -}} 249 {{ range .NoteGroups -}} 250 ### {{ .Title }} 251 252 {{ range .Notes }} 253 {{ .Body }} 254 {{ end }} 255 {{ end -}} 256 {{ end -}} 257 {{ end -}}`, out) 258 } 259 260 func TestCustomTemplateBuilderIgnoreMerges(t *testing.T) { 261 assert := assert.New(t) 262 builder := NewCustomTemplateBuilder() 263 264 out, err := builder.Build(&Answer{ 265 Style: styleNone, 266 CommitMessageFormat: fmtTypeSubject.display, 267 Template: tplStandard.display, 268 IncludeMerges: false, 269 IncludeReverts: true, 270 }) 271 272 assert.Nil(err) 273 assert.Equal(`{{ range .Versions }} 274 ## {{ .Tag.Name }} ({{ datetime "2006-01-02" .Tag.Date }}) 275 276 {{ range .CommitGroups -}} 277 ### {{ .Title }} 278 279 {{ range .Commits -}} 280 * {{ .Subject }} 281 {{ end }} 282 {{ end -}} 283 284 {{- if .RevertCommits -}} 285 ### Reverts 286 287 {{ range .RevertCommits -}} 288 * {{ .Revert.Header }} 289 {{ end }} 290 {{ end -}} 291 292 {{- if .NoteGroups -}} 293 {{ range .NoteGroups -}} 294 ### {{ .Title }} 295 296 {{ range .Notes }} 297 {{ .Body }} 298 {{ end }} 299 {{ end -}} 300 {{ end -}} 301 {{ end -}}`, out) 302 } 303 304 func TestCustomTemplateBuilderCool(t *testing.T) { 305 assert := assert.New(t) 306 builder := NewCustomTemplateBuilder() 307 308 out, err := builder.Build(&Answer{ 309 Style: styleNone, 310 CommitMessageFormat: fmtTypeScopeSubject.display, 311 Template: tplCool.display, 312 IncludeMerges: true, 313 IncludeReverts: true, 314 }) 315 316 assert.Nil(err) 317 assert.Equal(`{{ range .Versions }} 318 ## {{ .Tag.Name }} 319 320 > {{ datetime "2006-01-02" .Tag.Date }} 321 322 {{ range .CommitGroups -}} 323 ### {{ .Title }} 324 325 {{ range .Commits -}} 326 * {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }} 327 {{ end }} 328 {{ end -}} 329 330 {{- if .RevertCommits -}} 331 ### Reverts 332 333 {{ range .RevertCommits -}} 334 * {{ .Revert.Header }} 335 {{ end }} 336 {{ end -}} 337 338 {{- if .MergeCommits -}} 339 ### Merges 340 341 {{ range .MergeCommits -}} 342 * {{ .Header }} 343 {{ end }} 344 {{ end -}} 345 346 {{- if .NoteGroups -}} 347 {{ range .NoteGroups -}} 348 ### {{ .Title }} 349 350 {{ range .Notes }} 351 {{ .Body }} 352 {{ end }} 353 {{ end -}} 354 {{ end -}} 355 {{ end -}}`, out) 356 }