Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 3039c19

Browse files
author
weitenghuang
committed
Empty string is valid env value
Update Environment Lookup unit test and add new yaml tests to reflect the code change, since empty string is valid value Signed-off-by: weitenghuang <[email protected]>
1 parent 355e947 commit 3039c19

File tree

2 files changed

+68
-1
lines changed

2 files changed

+68
-1
lines changed

project/project_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func TestEnvironmentResolve(t *testing.T) {
153153
t.Fatal(err)
154154
}
155155

156-
if !reflect.DeepEqual(service.Config().Environment, yaml.MaporEqualSlice{"A=X", "A=X", "A=B"}) {
156+
if !reflect.DeepEqual(service.Config().Environment, yaml.MaporEqualSlice{"A=X", "A=", "A=B"}) {
157157
t.Fatal("Invalid environment", service.Config().Environment)
158158
}
159159
}

yaml/types_yaml_test.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,70 @@ func TestMaporsliceYaml(t *testing.T) {
135135
assert.True(t, contains(s2.Foo, "far=1"))
136136
assert.True(t, contains(s2.Foo, "qux"))
137137
}
138+
139+
func TestMapWithEmptyValue(t *testing.T) {
140+
str := `foo:
141+
bar: baz
142+
far: 1
143+
qux: null
144+
empty: ""
145+
lookup:`
146+
147+
s := StructMaporslice{}
148+
yaml.Unmarshal([]byte(str), &s)
149+
150+
assert.Equal(t, 5, len(s.Foo))
151+
assert.True(t, contains(s.Foo, "bar=baz"))
152+
assert.True(t, contains(s.Foo, "far=1"))
153+
assert.True(t, contains(s.Foo, "qux"))
154+
assert.True(t, contains(s.Foo, "empty="))
155+
assert.True(t, contains(s.Foo, "lookup"))
156+
157+
d, err := yaml.Marshal(&s)
158+
assert.Nil(t, err)
159+
160+
s2 := StructMaporslice{}
161+
yaml.Unmarshal(d, &s2)
162+
163+
assert.Equal(t, 5, len(s2.Foo))
164+
assert.True(t, contains(s2.Foo, "bar=baz"))
165+
assert.True(t, contains(s2.Foo, "far=1"))
166+
assert.True(t, contains(s2.Foo, "qux"))
167+
assert.True(t, contains(s2.Foo, "empty="))
168+
assert.True(t, contains(s2.Foo, "lookup"))
169+
}
170+
171+
func TestSliceWithEmptyValue(t *testing.T) {
172+
str := `foo:
173+
- bar=baz
174+
- far=1
175+
- qux=null
176+
- quotes=""
177+
- empty=
178+
- lookup`
179+
180+
s := StructMaporslice{}
181+
yaml.Unmarshal([]byte(str), &s)
182+
183+
assert.Equal(t, 6, len(s.Foo))
184+
assert.True(t, contains(s.Foo, "bar=baz"))
185+
assert.True(t, contains(s.Foo, "far=1"))
186+
assert.True(t, contains(s.Foo, "qux=null"))
187+
assert.True(t, contains(s.Foo, "quotes=\"\""))
188+
assert.True(t, contains(s.Foo, "empty="))
189+
assert.True(t, contains(s.Foo, "lookup"))
190+
191+
d, err := yaml.Marshal(&s)
192+
assert.Nil(t, err)
193+
194+
s2 := StructMaporslice{}
195+
yaml.Unmarshal(d, &s2)
196+
197+
assert.Equal(t, 6, len(s2.Foo))
198+
assert.True(t, contains(s2.Foo, "bar=baz"))
199+
assert.True(t, contains(s2.Foo, "far=1"))
200+
assert.True(t, contains(s2.Foo, "qux=null"))
201+
assert.True(t, contains(s2.Foo, "quotes=\"\""))
202+
assert.True(t, contains(s2.Foo, "empty="))
203+
assert.True(t, contains(s2.Foo, "lookup"))
204+
}

0 commit comments

Comments
 (0)