github.com/fredbi/git-chglog@v0.0.0-20190706071416-d35c598eac81/cmd/git-chglog/kac_template_builder_test.go (about)

     1  package main
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestKACTemplateBuilderDefault(t *testing.T) {
    10  	assert := assert.New(t)
    11  	builder := NewKACTemplateBuilder()
    12  
    13  	out, err := builder.Build(&Answer{
    14  		Style:               styleGitHub,
    15  		CommitMessageFormat: fmtTypeScopeSubject.display,
    16  		Template:            tplKeepAChangelog.display,
    17  		IncludeMerges:       true,
    18  		IncludeReverts:      true,
    19  	})
    20  
    21  	assert.Nil(err)
    22  	assert.Equal(`{{ if .Versions -}}
    23  <a name="unreleased"></a>
    24  ## [Unreleased]
    25  
    26  {{ if .Unreleased.CommitGroups -}}
    27  {{ range .Unreleased.CommitGroups -}}
    28  ### {{ .Title }}
    29  {{ range .Commits -}}
    30  - {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
    31  {{ end }}
    32  {{ end -}}
    33  {{ end -}}
    34  {{ end -}}
    35  
    36  {{ range .Versions }}
    37  <a name="{{ .Tag.Name }}"></a>
    38  ## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }}
    39  {{ range .CommitGroups -}}
    40  ### {{ .Title }}
    41  {{ range .Commits -}}
    42  - {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
    43  {{ end }}
    44  {{ end -}}
    45  
    46  {{- if .RevertCommits -}}
    47  ### Reverts
    48  {{ range .RevertCommits -}}
    49  - {{ .Revert.Header }}
    50  {{ end }}
    51  {{ end -}}
    52  
    53  {{- if .MergeCommits -}}
    54  ### Pull Requests
    55  {{ range .MergeCommits -}}
    56  - {{ .Header }}
    57  {{ end }}
    58  {{ end -}}
    59  
    60  {{- if .NoteGroups -}}
    61  {{ range .NoteGroups -}}
    62  ### {{ .Title }}
    63  {{ range .Notes }}
    64  {{ .Body }}
    65  {{ end }}
    66  {{ end -}}
    67  {{ end -}}
    68  {{ end -}}
    69  
    70  {{- if .Versions }}
    71  [Unreleased]: {{ .Info.RepositoryURL }}/compare/{{ $latest := index .Versions 0 }}{{ $latest.Tag.Name }}...HEAD
    72  {{ range .Versions -}}
    73  {{ if .Tag.Previous -}}
    74  [{{ .Tag.Name }}]: {{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}
    75  {{ end -}}
    76  {{ end -}}
    77  {{ end -}}`, out)
    78  }
    79  
    80  func TestKACTemplateBuilderNone(t *testing.T) {
    81  	assert := assert.New(t)
    82  	builder := NewKACTemplateBuilder()
    83  
    84  	out, err := builder.Build(&Answer{
    85  		Style:               styleNone,
    86  		CommitMessageFormat: fmtTypeScopeSubject.display,
    87  		Template:            tplKeepAChangelog.display,
    88  		IncludeMerges:       true,
    89  		IncludeReverts:      true,
    90  	})
    91  
    92  	assert.Nil(err)
    93  	assert.Equal(`{{ if .Versions -}}
    94  ## Unreleased
    95  
    96  {{ if .Unreleased.CommitGroups -}}
    97  {{ range .Unreleased.CommitGroups -}}
    98  ### {{ .Title }}
    99  {{ range .Commits -}}
   100  - {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
   101  {{ end }}
   102  {{ end -}}
   103  {{ end -}}
   104  {{ end -}}
   105  
   106  {{ range .Versions }}
   107  ## {{ .Tag.Name }} - {{ datetime "2006-01-02" .Tag.Date }}
   108  {{ range .CommitGroups -}}
   109  ### {{ .Title }}
   110  {{ range .Commits -}}
   111  - {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
   112  {{ end }}
   113  {{ end -}}
   114  
   115  {{- if .RevertCommits -}}
   116  ### Reverts
   117  {{ range .RevertCommits -}}
   118  - {{ .Revert.Header }}
   119  {{ end }}
   120  {{ end -}}
   121  
   122  {{- if .MergeCommits -}}
   123  ### Merges
   124  {{ range .MergeCommits -}}
   125  - {{ .Header }}
   126  {{ end }}
   127  {{ end -}}
   128  
   129  {{- if .NoteGroups -}}
   130  {{ range .NoteGroups -}}
   131  ### {{ .Title }}
   132  {{ range .Notes }}
   133  {{ .Body }}
   134  {{ end }}
   135  {{ end -}}
   136  {{ end -}}
   137  {{ end -}}`, out)
   138  }
   139  
   140  func TestKACTemplateBuilderSubject(t *testing.T) {
   141  	assert := assert.New(t)
   142  	builder := NewKACTemplateBuilder()
   143  
   144  	out, err := builder.Build(&Answer{
   145  		Style:               styleNone,
   146  		CommitMessageFormat: fmtSubject.display,
   147  		Template:            tplKeepAChangelog.display,
   148  		IncludeMerges:       true,
   149  		IncludeReverts:      true,
   150  	})
   151  
   152  	assert.Nil(err)
   153  	assert.Equal(`{{ if .Versions -}}
   154  ## Unreleased
   155  
   156  {{ if .Unreleased.CommitGroups -}}
   157  {{ range .Unreleased.CommitGroups -}}
   158  {{ range .Commits -}}
   159  - {{ .Header }}
   160  {{ end }}
   161  {{ end -}}
   162  {{ end -}}
   163  {{ end -}}
   164  
   165  {{ range .Versions }}
   166  ## {{ .Tag.Name }} - {{ datetime "2006-01-02" .Tag.Date }}
   167  {{ range .CommitGroups -}}
   168  {{ range .Commits -}}
   169  - {{ .Header }}
   170  {{ end }}
   171  {{ end -}}
   172  
   173  {{- if .RevertCommits -}}
   174  ### Reverts
   175  {{ range .RevertCommits -}}
   176  - {{ .Revert.Header }}
   177  {{ end }}
   178  {{ end -}}
   179  
   180  {{- if .MergeCommits -}}
   181  ### Merges
   182  {{ range .MergeCommits -}}
   183  - {{ .Header }}
   184  {{ end }}
   185  {{ end -}}
   186  
   187  {{- if .NoteGroups -}}
   188  {{ range .NoteGroups -}}
   189  ### {{ .Title }}
   190  {{ range .Notes }}
   191  {{ .Body }}
   192  {{ end }}
   193  {{ end -}}
   194  {{ end -}}
   195  {{ end -}}`, out)
   196  }