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  }