mirror of https://github.com/docker/cli.git
Add tests for secret.name in compose files.
Signed-off-by: Ilya Sotkov <ilya@sotkov.com>
This commit is contained in:
parent
4f7f3d2f61
commit
1f10b31017
|
@ -214,6 +214,26 @@ configs:
|
||||||
require.Len(t, actual.Configs, 1)
|
require.Len(t, actual.Configs, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestLoadV35(t *testing.T) {
|
||||||
|
actual, err := loadYAML(`
|
||||||
|
version: "3.5"
|
||||||
|
services:
|
||||||
|
foo:
|
||||||
|
image: busybox
|
||||||
|
secrets: [foo, bar, baz]
|
||||||
|
secrets:
|
||||||
|
foo:
|
||||||
|
name: fooqux
|
||||||
|
external: true
|
||||||
|
bar:
|
||||||
|
name: barqux
|
||||||
|
file: ./full-example.yml
|
||||||
|
`)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Len(t, actual.Services, 1)
|
||||||
|
assert.Len(t, actual.Secrets, 2)
|
||||||
|
}
|
||||||
|
|
||||||
func TestParseAndLoad(t *testing.T) {
|
func TestParseAndLoad(t *testing.T) {
|
||||||
actual, err := loadYAML(sampleYAML)
|
actual, err := loadYAML(sampleYAML)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -626,10 +646,10 @@ networks:
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Configs: map[string]types.ConfigObjConfig{
|
Configs: map[string]types.ConfigObjConfig{
|
||||||
"appconfig": {External: types.External{External: true, Name: "appconfig"}},
|
"appconfig": {External: types.External{External: true}, Name: "appconfig"},
|
||||||
},
|
},
|
||||||
Secrets: map[string]types.SecretConfig{
|
Secrets: map[string]types.SecretConfig{
|
||||||
"super": {External: types.External{External: true, Name: "super"}},
|
"super": {External: types.External{External: true}, Name: "super"},
|
||||||
},
|
},
|
||||||
Volumes: map[string]types.VolumeConfig{
|
Volumes: map[string]types.VolumeConfig{
|
||||||
"data": {External: types.External{External: true}, Name: "data"},
|
"data": {External: types.External{External: true}, Name: "data"},
|
||||||
|
@ -1488,3 +1508,44 @@ configs:
|
||||||
require.Len(t, actual.Services, 1)
|
require.Len(t, actual.Services, 1)
|
||||||
assert.Equal(t, "invalid", actual.Services[0].Isolation)
|
assert.Equal(t, "invalid", actual.Services[0].Isolation)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInvalidSecretExternalNameAndNameCombination(t *testing.T) {
|
||||||
|
_, err := loadYAML(`
|
||||||
|
version: "3.5"
|
||||||
|
secrets:
|
||||||
|
external_secret:
|
||||||
|
name: user_specified_name
|
||||||
|
external:
|
||||||
|
name: external_name
|
||||||
|
`)
|
||||||
|
|
||||||
|
require.Error(t, err)
|
||||||
|
assert.Contains(t, err.Error(), "secret.external.name and secret.name conflict; only use secret.name")
|
||||||
|
assert.Contains(t, err.Error(), "external_secret")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLoadSecretsWarnOnDeprecatedExternalNameVersion35(t *testing.T) {
|
||||||
|
buf, cleanup := patchLogrus()
|
||||||
|
defer cleanup()
|
||||||
|
|
||||||
|
source := map[string]interface{}{
|
||||||
|
"foo": map[string]interface{}{
|
||||||
|
"external": map[string]interface{}{
|
||||||
|
"name": "oops",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
details := types.ConfigDetails{
|
||||||
|
Version: "3.5",
|
||||||
|
}
|
||||||
|
secrets, err := LoadSecrets(source, details)
|
||||||
|
require.NoError(t, err)
|
||||||
|
expected := map[string]types.SecretConfig{
|
||||||
|
"foo": {
|
||||||
|
Name: "oops",
|
||||||
|
External: types.External{External: true},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
assert.Equal(t, expected, secrets)
|
||||||
|
assert.Contains(t, buf.String(), "secret.external.name is deprecated")
|
||||||
|
}
|
||||||
|
|
|
@ -46,6 +46,25 @@ func TestValidateAllowsXTopLevelFields(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestValidateSecretConfigNames(t *testing.T) {
|
||||||
|
config := dict{
|
||||||
|
"version": "3.5",
|
||||||
|
"configs": dict{
|
||||||
|
"bar": dict{
|
||||||
|
"name": "foobar",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"secrets": dict{
|
||||||
|
"baz": dict{
|
||||||
|
"name": "foobaz",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
err := Validate(config, "3.5")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
func TestValidateInvalidVersion(t *testing.T) {
|
func TestValidateInvalidVersion(t *testing.T) {
|
||||||
config := dict{
|
config := dict{
|
||||||
"version": "2.1",
|
"version": "2.1",
|
||||||
|
|
Loading…
Reference in New Issue