Skip to content

Commit 62c5197

Browse files
committed
Add DotToObj tests
Signed-off-by: Romain Caire <[email protected]>
1 parent 021a554 commit 62c5197

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

pkg/argocd/update.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,8 +492,12 @@ func marshalParamsOverride(app *v1alpha1.Application, originalData []byte) ([]by
492492
}
493493

494494
func dotToObj(key string, value string) map[string]interface{} {
495-
keys := strings.Split(key, ".")
496495
obj := make(map[string]interface{})
496+
if key == "" {
497+
return obj
498+
}
499+
500+
keys := strings.Split(key, ".")
497501

498502
current := obj
499503
for i, k := range keys {

pkg/argocd/update_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1652,6 +1652,28 @@ random:
16521652
})
16531653
}
16541654

1655+
func Test_DotToObj(t *testing.T) {
1656+
t.Run("no value", func(t *testing.T) {
1657+
obj := dotToObj("", "val")
1658+
assert.Equal(t, map[string]interface{}{}, obj)
1659+
})
1660+
1661+
t.Run("single value", func(t *testing.T) {
1662+
obj := dotToObj("a", "val")
1663+
assert.Equal(t, map[string]interface{}{"a": "val"}, obj)
1664+
})
1665+
1666+
t.Run("multiple values", func(t *testing.T) {
1667+
obj := dotToObj("a.b.c", "val")
1668+
assert.Equal(t, map[string]interface{}{"a": map[string]interface{}{
1669+
"b": map[string]interface{}{
1670+
"c": "val",
1671+
},
1672+
},
1673+
}, obj)
1674+
})
1675+
}
1676+
16551677
func Test_GetWriteBackConfig(t *testing.T) {
16561678
t.Run("Valid write-back config - git", func(t *testing.T) {
16571679
app := v1alpha1.Application{

0 commit comments

Comments
 (0)