mirror of https://github.com/portainer/portainer
70 lines
1.9 KiB
Go
70 lines
1.9 KiB
Go
package images
|
|
|
|
import (
|
|
"testing"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFindBestMatchNeedAuthRegistry(t *testing.T) {
|
|
is := assert.New(t)
|
|
|
|
t.Run("", func(t *testing.T) {
|
|
image := "USERNAME/nginx:latest"
|
|
registries := []portainer.Registry{createNewRegistry("docker.io", "USERNAME", false),
|
|
createNewRegistry("hub-mirror.c.163.com", "", false)}
|
|
r, err := findBestMatchRegistry(image, registries)
|
|
is.NoError(err, "")
|
|
is.NotNil(r, "")
|
|
is.False(r.Authentication, "")
|
|
is.Equal("docker.io", r.URL)
|
|
})
|
|
|
|
t.Run("", func(t *testing.T) {
|
|
image := "USERNAME/nginx:latest"
|
|
registries := []portainer.Registry{createNewRegistry("docker.io", "", false),
|
|
createNewRegistry("hub-mirror.c.163.com", "USERNAME", false)}
|
|
r, err := findBestMatchRegistry(image, registries)
|
|
is.NoError(err, "")
|
|
is.NotNil(r, "")
|
|
is.False(r.Authentication, "")
|
|
is.Equal("docker.io", r.URL)
|
|
})
|
|
|
|
t.Run("", func(t *testing.T) {
|
|
image := "docker.io/<USERNAME>/nginx:latest"
|
|
registries := []portainer.Registry{createNewRegistry("docker.io", "USERNAME", true),
|
|
createNewRegistry("hub-mirror.c.163.com", "", false)}
|
|
r, err := findBestMatchRegistry(image, registries)
|
|
is.NoError(err, "")
|
|
is.NotNil(r, "")
|
|
is.True(r.Authentication, "")
|
|
is.Equal("docker.io", r.URL)
|
|
})
|
|
|
|
t.Run("", func(t *testing.T) {
|
|
image := "portainer/portainer-ee:latest"
|
|
registries := []portainer.Registry{createNewRegistry("docker.io", "", true)}
|
|
r, err := findBestMatchRegistry(image, registries)
|
|
is.NoError(err, "")
|
|
is.NotNil(r, "")
|
|
is.True(r.Authentication, "")
|
|
is.Equal("docker.io", r.URL)
|
|
})
|
|
}
|
|
|
|
func createNewRegistry(domain, username string, auth bool) portainer.Registry {
|
|
registry := portainer.Registry{
|
|
URL: domain,
|
|
Authentication: auth,
|
|
Username: username,
|
|
}
|
|
|
|
if domain == "docker.io" {
|
|
registry.Type = portainer.DockerHubRegistry
|
|
}
|
|
|
|
return registry
|
|
}
|