mirror of https://github.com/docker/cli.git
Update compose 3.8 to disallow additional properties
This was added in other schemas in 1e99ed3ca3
,
but not coppied to version 3.8
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
cfd5b16ae0
commit
70846619a9
|
@ -510,45 +510,45 @@ bnBpPlHfjORjkTRf1wyAwiYqMXd9/G6313QfoXs6/sbZ66r6e179PwAA//8ZL3SpvkUAAA==
|
||||||
|
|
||||||
"/data/config_schema_v3.8.json": {
|
"/data/config_schema_v3.8.json": {
|
||||||
local: "data/config_schema_v3.8.json",
|
local: "data/config_schema_v3.8.json",
|
||||||
size: 17835,
|
size: 17912,
|
||||||
modtime: 1518458244,
|
modtime: 1518458244,
|
||||||
compressed: `
|
compressed: `
|
||||||
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
|
||||||
fwAAAP//uQ4+qatFAAA=
|
yYJltPhFAAA=
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -122,10 +122,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"container_name": {"type": "string"},
|
"container_name": {"type": "string"},
|
||||||
"credential_spec": {"type": "object", "properties": {
|
"credential_spec": {
|
||||||
"file": {"type": "string"},
|
"type": "object",
|
||||||
"registry": {"type": "string"}
|
"properties": {
|
||||||
}},
|
"file": {"type": "string"},
|
||||||
|
"registry": {"type": "string"}
|
||||||
|
},
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
"depends_on": {"$ref": "#/definitions/list_of_strings"},
|
"depends_on": {"$ref": "#/definitions/list_of_strings"},
|
||||||
"devices": {"type": "array", "items": {"type": "string"}, "uniqueItems": true},
|
"devices": {"type": "array", "items": {"type": "string"}, "uniqueItems": true},
|
||||||
"dns": {"$ref": "#/definitions/string_or_list"},
|
"dns": {"$ref": "#/definitions/string_or_list"},
|
||||||
|
|
|
@ -80,17 +80,6 @@ func TestValidateAllowsXFields(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestValidateCredentialSpecs(t *testing.T) {
|
func TestValidateCredentialSpecs(t *testing.T) {
|
||||||
config := dict{
|
|
||||||
"version": "99.99",
|
|
||||||
"services": dict{
|
|
||||||
"foo": dict{
|
|
||||||
"image": "busybox",
|
|
||||||
"credential_spec": dict{
|
|
||||||
"config": "foobar",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
version string
|
version string
|
||||||
expectedErr string
|
expectedErr string
|
||||||
|
@ -103,11 +92,23 @@ func TestValidateCredentialSpecs(t *testing.T) {
|
||||||
{version: "3.5", expectedErr: "config"},
|
{version: "3.5", expectedErr: "config"},
|
||||||
{version: "3.6", expectedErr: "config"},
|
{version: "3.6", expectedErr: "config"},
|
||||||
{version: "3.7", expectedErr: "config"},
|
{version: "3.7", expectedErr: "config"},
|
||||||
|
{version: "3.8", expectedErr: "something"},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tc := range tests {
|
for _, tc := range tests {
|
||||||
tc := tc
|
tc := tc
|
||||||
t.Run(tc.version, func(t *testing.T) {
|
t.Run(tc.version, func(t *testing.T) {
|
||||||
|
config := dict{
|
||||||
|
"version": "99.99",
|
||||||
|
"services": dict{
|
||||||
|
"foo": dict{
|
||||||
|
"image": "busybox",
|
||||||
|
"credential_spec": dict{
|
||||||
|
tc.expectedErr: "foobar",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
err := Validate(config, tc.version)
|
err := Validate(config, tc.version)
|
||||||
if tc.expectedErr != "" {
|
if tc.expectedErr != "" {
|
||||||
assert.ErrorContains(t, err, fmt.Sprintf("Additional property %s is not allowed", tc.expectedErr))
|
assert.ErrorContains(t, err, fmt.Sprintf("Additional property %s is not allowed", tc.expectedErr))
|
||||||
|
|
Loading…
Reference in New Issue