Extend cli auth wrap test

This commit is contained in:
Bryce Lampe
2024-04-22 12:34:20 -07:00
parent d72c895b59
commit 0f23201468
2 changed files with 32 additions and 19 deletions

View File

@@ -43,6 +43,10 @@ func TestExec(t *testing.T) {
func TestWrappedAuth(t *testing.T) { func TestWrappedAuth(t *testing.T) {
t.Parallel() t.Parallel()
ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com" ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com"
realhost, err := newHost(nil)
require.NoError(t, err)
h := &host{ h := &host{
auths: map[string]types.AuthConfig{ auths: map[string]types.AuthConfig{
ecr: { ecr: {
@@ -50,7 +54,7 @@ func TestWrappedAuth(t *testing.T) {
Password: "host-aws-password", Password: "host-aws-password",
ServerAddress: ecr, ServerAddress: ecr,
}, },
"misc": { "https://misc": { // Legacy config includes http/https scheme.
Username: "host-misc-user", Username: "host-misc-user",
Password: "host-misc-password", Password: "host-misc-password",
ServerAddress: "misc", ServerAddress: "misc",
@@ -71,25 +75,34 @@ func TestWrappedAuth(t *testing.T) {
}, },
} }
_, err = wrap(h, registries...)
require.NoError(t, err)
cli, err := wrap(h, registries...) cli, err := wrap(h, registries...)
require.NoError(t, err) require.NoError(t, err)
require.Contains(t, cli.auths, ecr) expected := map[string]types.AuthConfig{
aws := cli.auths[ecr] "1234.dkr.ecr.us-west-2.amazonaws.com": {
assert.Equal(t, "resource-aws-user", aws.Username) Username: "resource-aws-user",
assert.Equal(t, "resource-aws-password", aws.Password) Password: "resource-aws-password",
assert.Equal(t, "1234.dkr.ecr.us-west-2.amazonaws.com", aws.ServerAddress) ServerAddress: "1234.dkr.ecr.us-west-2.amazonaws.com",
},
config.DockerRegistryAuth: {
Username: "resource-dockerhub-user",
Password: "resource-dockerhub-password",
ServerAddress: config.DockerRegistryAuth,
},
"misc": {
Username: "host-misc-user",
Password: "host-misc-password",
ServerAddress: "misc",
},
}
assert.Equal(t, expected, cli.auths)
assert.Len(t, h.auths, 2) // Host auth is unchanged.
require.Contains(t, cli.auths, config.DockerRegistryAuth) // Assert that our host's auth is untouched.
dockerhub := cli.auths[config.DockerRegistryAuth] realhostRefreshed, err := newHost(nil)
assert.Equal(t, "resource-dockerhub-user", dockerhub.Username) require.NoError(t, err)
assert.Equal(t, "resource-dockerhub-password", dockerhub.Password) assert.Equal(t, realhost.auths, realhostRefreshed.auths)
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)
} }

View File

@@ -323,7 +323,7 @@ func TestInspect(t *testing.T) {
t.Parallel() t.Parallel()
cli := testcli(t, false) cli := testcli(t, false)
descriptors, err := cli.Inspect(context.Background(), "pulumibot/myapp:buildx") descriptors, err := cli.Inspect(context.Background(), "pulumibot/myapp:buildx")
assert.NoError(t, err) require.NoError(t, err)
assert.Equal( assert.Equal(
t, t,
"application/vnd.docker.distribution.manifest.v2+json", "application/vnd.docker.distribution.manifest.v2+json",