vault/tools/pipeline/internal/pkg/github/copy_pull_request_test.go
Vault Automation 0c6c13dd38
license: update headers to IBM Corp. (#10229) (#10233)
* license: update headers to IBM Corp.
* `make proto`
* update offset because source file changed

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-21 15:20:20 -06:00

86 lines
2.6 KiB
Go

// Copyright IBM Corp. 2016, 2025
// SPDX-License-Identifier: BUSL-1.1
package github
import (
"testing"
libgithub "github.com/google/go-github/v74/github"
"github.com/stretchr/testify/require"
)
func Test_CopyPullRequest_getCoAuthoredByTrailers(t *testing.T) {
t.Parallel()
for name, test := range map[string]struct {
commits []*libgithub.RepositoryCommit
expected []string
}{
"no commits": {
nil,
nil,
},
"one author one commit": {
[]*libgithub.RepositoryCommit{
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("John Doe"),
Email: libgithub.Ptr("john@example.com"),
}}},
},
[]string{"Co-Authored-By: John Doe <john@example.com>"},
},
"one author multiple commits": {
[]*libgithub.RepositoryCommit{
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("John Doe"),
Email: libgithub.Ptr("john@example.com"),
}}},
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("John Doe"),
Email: libgithub.Ptr("john@example.com"),
}}},
},
[]string{"Co-Authored-By: John Doe <john@example.com>"},
},
"multiple authors with one commit each": {
[]*libgithub.RepositoryCommit{
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("John Doe"),
Email: libgithub.Ptr("john@example.com"),
}}},
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("Jane Doe"),
Email: libgithub.Ptr("jane@example.com"),
}}},
},
[]string{"Co-Authored-By: John Doe <john@example.com>", "Co-Authored-By: Jane Doe <jane@example.com>"},
},
"multiple authors with multiple commits": {
[]*libgithub.RepositoryCommit{
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("John Doe"),
Email: libgithub.Ptr("john@example.com"),
}}},
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("Jane Doe"),
Email: libgithub.Ptr("jane@example.com"),
}}},
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("Jane Doe"),
Email: libgithub.Ptr("jane@example.com"),
}}},
{Commit: &libgithub.Commit{Author: &libgithub.CommitAuthor{
Name: libgithub.Ptr("John Doe"),
Email: libgithub.Ptr("john@example.com"),
}}},
},
[]string{"Co-Authored-By: John Doe <john@example.com>", "Co-Authored-By: Jane Doe <jane@example.com>"},
},
} {
t.Run(name, func(t *testing.T) {
req := &CopyPullRequestReq{}
require.EqualValues(t, test.expected, req.getCoAuthoredByTrailers(test.commits))
})
}
}