mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 17:07:16 +00:00
88 lines
1.8 KiB
Go
88 lines
1.8 KiB
Go
package pull_request
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/google/go-github/v66/github"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func toPtr(s string) *string {
|
|
return &s
|
|
}
|
|
|
|
func TestContainLabels(t *testing.T) {
|
|
cases := []struct {
|
|
Name string
|
|
Labels []string
|
|
PullLabels []*github.Label
|
|
Expect bool
|
|
}{
|
|
{
|
|
Name: "Match labels",
|
|
Labels: []string{"label1", "label2"},
|
|
PullLabels: []*github.Label{
|
|
{Name: toPtr("label1")},
|
|
{Name: toPtr("label2")},
|
|
{Name: toPtr("label3")},
|
|
},
|
|
Expect: true,
|
|
},
|
|
{
|
|
Name: "Not match labels",
|
|
Labels: []string{"label1", "label4"},
|
|
PullLabels: []*github.Label{
|
|
{Name: toPtr("label1")},
|
|
{Name: toPtr("label2")},
|
|
{Name: toPtr("label3")},
|
|
},
|
|
Expect: false,
|
|
},
|
|
{
|
|
Name: "No specify",
|
|
Labels: []string{},
|
|
PullLabels: []*github.Label{
|
|
{Name: toPtr("label1")},
|
|
{Name: toPtr("label2")},
|
|
{Name: toPtr("label3")},
|
|
},
|
|
Expect: true,
|
|
},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
t.Run(c.Name, func(t *testing.T) {
|
|
got := containLabels(c.Labels, c.PullLabels)
|
|
require.Equal(t, got, c.Expect)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestGetGitHubPRLabelNames(t *testing.T) {
|
|
Tests := []struct {
|
|
Name string
|
|
PullLabels []*github.Label
|
|
ExpectedResult []string
|
|
}{
|
|
{
|
|
Name: "PR has labels",
|
|
PullLabels: []*github.Label{
|
|
{Name: toPtr("label1")},
|
|
{Name: toPtr("label2")},
|
|
{Name: toPtr("label3")},
|
|
},
|
|
ExpectedResult: []string{"label1", "label2", "label3"},
|
|
},
|
|
{
|
|
Name: "PR does not have labels",
|
|
PullLabels: []*github.Label{},
|
|
ExpectedResult: nil,
|
|
},
|
|
}
|
|
for _, test := range Tests {
|
|
t.Run(test.Name, func(t *testing.T) {
|
|
labels := getGithubPRLabelNames(test.PullLabels)
|
|
require.Equal(t, test.ExpectedResult, labels)
|
|
})
|
|
}
|
|
}
|