Unit test for auth wrapping
This commit is contained in:
@@ -18,6 +18,8 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/docker/cli/cli/config/types"
|
||||||
|
"github.com/regclient/regclient/config"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@@ -37,3 +39,56 @@ func TestExec(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Contains(t, string(out), "github.com/docker/buildx")
|
assert.Contains(t, string(out), "github.com/docker/buildx")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestWrappedAuth(t *testing.T) {
|
||||||
|
ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com"
|
||||||
|
h := &host{
|
||||||
|
auths: map[string]types.AuthConfig{
|
||||||
|
ecr: {
|
||||||
|
Username: "host-aws-user",
|
||||||
|
Password: "host-aws-password",
|
||||||
|
ServerAddress: ecr,
|
||||||
|
},
|
||||||
|
"misc": {
|
||||||
|
Username: "host-misc-user",
|
||||||
|
Password: "host-misc-password",
|
||||||
|
ServerAddress: "misc",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
registries := []Registry{
|
||||||
|
{
|
||||||
|
Address: "1234.dkr.ecr.us-west-2.amazonaws.com",
|
||||||
|
Username: "resource-aws-user",
|
||||||
|
Password: "resource-aws-password",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Address: "docker.io",
|
||||||
|
Username: "resource-dockerhub-user",
|
||||||
|
Password: "resource-dockerhub-password",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
cli, err := wrap(h, registries...)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
require.Contains(t, cli.auths, ecr)
|
||||||
|
aws := cli.auths[ecr]
|
||||||
|
assert.Equal(t, "resource-aws-user", aws.Username)
|
||||||
|
assert.Equal(t, "resource-aws-password", aws.Password)
|
||||||
|
assert.Equal(t, "1234.dkr.ecr.us-west-2.amazonaws.com", aws.ServerAddress)
|
||||||
|
|
||||||
|
require.Contains(t, cli.auths, config.DockerRegistryAuth)
|
||||||
|
dockerhub := cli.auths[config.DockerRegistryAuth]
|
||||||
|
assert.Equal(t, "resource-dockerhub-user", dockerhub.Username)
|
||||||
|
assert.Equal(t, "resource-dockerhub-password", dockerhub.Password)
|
||||||
|
assert.Equal(t, config.DockerRegistryDNS, dockerhub.ServerAddress)
|
||||||
|
|
||||||
|
// Auths derived from the host should be untouched, e.g. no scheme added, etc.
|
||||||
|
require.Contains(t, cli.auths, "misc")
|
||||||
|
misc := cli.auths["misc"]
|
||||||
|
assert.Equal(t, "host-misc-user", misc.Username)
|
||||||
|
assert.Equal(t, "host-misc-password", misc.Password)
|
||||||
|
assert.Equal(t, "misc", misc.ServerAddress)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user