Skip to content

Commit fcc46f1

Browse files
committed
label can be set with empty value
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent 4374750 commit fcc46f1

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

types/labels.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,7 @@ func (l *Labels) DecodeMapstructure(value interface{}) error {
6666
case []interface{}:
6767
labels := make(map[string]string, len(v))
6868
for _, s := range v {
69-
k, e, ok := strings.Cut(fmt.Sprint(s), "=")
70-
if !ok {
71-
return fmt.Errorf("invalid label %q", v)
72-
}
69+
k, e, _ := strings.Cut(fmt.Sprint(s), "=")
7370
labels[k] = labelValue(e)
7471
}
7572
*l = labels

types/labels_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
Copyright 2020 The Compose Specification Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package types
18+
19+
import (
20+
"testing"
21+
22+
"gotest.tools/v3/assert"
23+
)
24+
25+
func TestDecodeLabel(t *testing.T) {
26+
l := Labels{}
27+
err := l.DecodeMapstructure([]any{
28+
"a=b",
29+
"c",
30+
})
31+
assert.NilError(t, err)
32+
assert.Equal(t, l["a"], "b")
33+
assert.Equal(t, l["c"], "")
34+
}

0 commit comments

Comments
 (0)