mirror of https://github.com/portainer/portainer
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package binary
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/portainer/portainer/pkg/libhelm/libhelmtest"
|
|
"github.com/portainer/portainer/pkg/libhelm/options"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_SearchRepo(t *testing.T) {
|
|
libhelmtest.EnsureIntegrationTest(t)
|
|
is := assert.New(t)
|
|
|
|
hpm := NewHelmBinaryPackageManager("")
|
|
|
|
type testCase struct {
|
|
name string
|
|
url string
|
|
invalid bool
|
|
}
|
|
|
|
tests := []testCase{
|
|
{"not a helm repo", "https://portainer.io", true},
|
|
{"bitnami helm repo", "https://charts.bitnami.com/bitnami", false},
|
|
{"portainer helm repo", "https://portainer.github.io/k8s/", false},
|
|
{"gitlap helm repo with trailing slash", "https://charts.gitlab.io/", false},
|
|
{"elastic helm repo with trailing slash", "https://helm.elastic.co/", false},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
func(tc testCase) {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
response, err := hpm.SearchRepo(options.SearchRepoOptions{Repo: tc.url})
|
|
if tc.invalid {
|
|
is.Errorf(err, "error expected: %s", tc.url)
|
|
} else {
|
|
is.NoError(err, "no error expected: %s", tc.url)
|
|
}
|
|
|
|
if err == nil {
|
|
is.NotEmpty(response, "response expected")
|
|
}
|
|
})
|
|
}(test)
|
|
}
|
|
}
|