github.com/git-chglog/git-chglog@v0.15.5-0.20240126074033-6a6993d52d69/processor_test.go (about)

     1  package chglog
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestGitHubProcessor(t *testing.T) {
    10  	assert := assert.New(t)
    11  
    12  	config := &Config{
    13  		Info: &Info{
    14  			RepositoryURL: "https://example.com",
    15  		},
    16  	}
    17  
    18  	processor := &GitHubProcessor{}
    19  
    20  	processor.Bootstrap(config)
    21  
    22  	assert.Equal(
    23  		&Commit{
    24  			Header:  "message [@foo](https://github.com/foo) [#123](https://example.com/issues/123)",
    25  			Subject: "message [@foo](https://github.com/foo) [#123](https://example.com/issues/123)",
    26  			Body: `issue [#456](https://example.com/issues/456)
    27  multiline [#789](https://example.com/issues/789)
    28  [@foo](https://github.com/foo), [@bar](https://github.com/bar)`,
    29  			Notes: []*Note{
    30  				{
    31  					Body: `issue1 [#11](https://example.com/issues/11)
    32  issue2 [#22](https://example.com/issues/22)
    33  [gh-56](https://example.com/issues/56) hoge fuga`,
    34  				},
    35  			},
    36  		},
    37  		processor.ProcessCommit(
    38  			&Commit{
    39  				Header:  "message @foo #123",
    40  				Subject: "message @foo #123",
    41  				Body: `issue #456
    42  multiline #789
    43  @foo, @bar`,
    44  				Notes: []*Note{
    45  					{
    46  						Body: `issue1 #11
    47  issue2 #22
    48  gh-56 hoge fuga`,
    49  					},
    50  				},
    51  			},
    52  		),
    53  	)
    54  
    55  	assert.Equal(
    56  		&Commit{
    57  			Revert: &Revert{
    58  				Header: "revert header [@mention](https://github.com/mention) [#123](https://example.com/issues/123)",
    59  			},
    60  		},
    61  		processor.ProcessCommit(
    62  			&Commit{
    63  				Revert: &Revert{
    64  					Header: "revert header @mention #123",
    65  				},
    66  			},
    67  		),
    68  	)
    69  }
    70  
    71  func TestGitLabProcessor(t *testing.T) {
    72  	assert := assert.New(t)
    73  
    74  	config := &Config{
    75  		Info: &Info{
    76  			RepositoryURL: "https://example.com",
    77  		},
    78  	}
    79  
    80  	processor := &GitLabProcessor{}
    81  
    82  	processor.Bootstrap(config)
    83  
    84  	assert.Equal(
    85  		&Commit{
    86  			Header:  "message [@foo](https://gitlab.com/foo) [#123](https://example.com/issues/123) [!345](https://example.com/merge_requests/345)",
    87  			Subject: "message [@foo](https://gitlab.com/foo) [#123](https://example.com/issues/123) [!345](https://example.com/merge_requests/345)",
    88  			Body: `issue [#456](https://example.com/issues/456)
    89  multiline [#789](https://example.com/issues/789)
    90  merge request [!345](https://example.com/merge_requests/345)
    91  [@foo](https://gitlab.com/foo), [@bar](https://gitlab.com/bar)`,
    92  			Notes: []*Note{
    93  				{
    94  					Body: `issue1 [#11](https://example.com/issues/11) [!33](https://example.com/merge_requests/33)
    95  issue2 [#22](https://example.com/issues/22)
    96  merge request [!33](https://example.com/merge_requests/33)
    97  gh-56 hoge fuga`,
    98  				},
    99  			},
   100  		},
   101  		processor.ProcessCommit(
   102  			&Commit{
   103  				Header:  "message @foo #123 !345",
   104  				Subject: "message @foo #123 !345",
   105  				Body: `issue #456
   106  multiline #789
   107  merge request !345
   108  @foo, @bar`,
   109  				Notes: []*Note{
   110  					{
   111  						Body: `issue1 #11 !33
   112  issue2 #22
   113  merge request !33
   114  gh-56 hoge fuga`,
   115  					},
   116  				},
   117  			},
   118  		),
   119  	)
   120  
   121  	assert.Equal(
   122  		&Commit{
   123  			Revert: &Revert{
   124  				Header: "revert header [@mention](https://gitlab.com/mention) [#123](https://example.com/issues/123) [!345](https://example.com/merge_requests/345)",
   125  			},
   126  		},
   127  		processor.ProcessCommit(
   128  			&Commit{
   129  				Revert: &Revert{
   130  					Header: "revert header @mention #123 !345",
   131  				},
   132  			},
   133  		),
   134  	)
   135  }
   136  
   137  func TestBitbucketProcessor(t *testing.T) {
   138  	assert := assert.New(t)
   139  
   140  	config := &Config{
   141  		Info: &Info{
   142  			RepositoryURL: "https://example.com",
   143  		},
   144  	}
   145  
   146  	processor := &BitbucketProcessor{}
   147  
   148  	processor.Bootstrap(config)
   149  
   150  	assert.Equal(
   151  		&Commit{
   152  			Header:  "message [@foo](https://bitbucket.org/foo/) [#123](https://example.com/issues/123/)",
   153  			Subject: "message [@foo](https://bitbucket.org/foo/) [#123](https://example.com/issues/123/)",
   154  			Body: `issue [#456](https://example.com/issues/456/)
   155  multiline [#789](https://example.com/issues/789/)
   156  [@foo](https://bitbucket.org/foo/), [@bar](https://bitbucket.org/bar/)`,
   157  			Notes: []*Note{
   158  				{
   159  					Body: `issue1 [#11](https://example.com/issues/11/)
   160  issue2 [#22](https://example.com/issues/22/)
   161  gh-56 hoge fuga`,
   162  				},
   163  			},
   164  		},
   165  		processor.ProcessCommit(
   166  			&Commit{
   167  				Header:  "message @foo #123",
   168  				Subject: "message @foo #123",
   169  				Body: `issue #456
   170  multiline #789
   171  @foo, @bar`,
   172  				Notes: []*Note{
   173  					{
   174  						Body: `issue1 #11
   175  issue2 #22
   176  gh-56 hoge fuga`,
   177  					},
   178  				},
   179  			},
   180  		),
   181  	)
   182  
   183  	assert.Equal(
   184  		&Commit{
   185  			Revert: &Revert{
   186  				Header: "revert header [@mention](https://bitbucket.org/mention/) [#123](https://example.com/issues/123/)",
   187  			},
   188  		},
   189  		processor.ProcessCommit(
   190  			&Commit{
   191  				Revert: &Revert{
   192  					Header: "revert header @mention #123",
   193  				},
   194  			},
   195  		),
   196  	)
   197  }