diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-06-22 09:53:37 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-06-22 21:38:28 +0200 |
commit | 4a9d408fe0bbf4c563546e35d2be7ade4e920c4c (patch) | |
tree | 942f920d5b829ab04b2e5786a712a713beb84f53 /config/defaultConfigProvider_test.go | |
parent | 93120598880ae7c598f186f5259fc4d5a286632f (diff) |
config: Fix merge of config with map[string]string values.
Fixes #8679
Diffstat (limited to 'config/defaultConfigProvider_test.go')
-rw-r--r-- | config/defaultConfigProvider_test.go | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/config/defaultConfigProvider_test.go b/config/defaultConfigProvider_test.go index 834165d96..6752ab2e5 100644 --- a/config/defaultConfigProvider_test.go +++ b/config/defaultConfigProvider_test.go @@ -204,6 +204,85 @@ func TestDefaultConfigProvider(t *testing.T) { }) }) + // Issue #8679 + c.Run("Merge typed maps", func(c *qt.C) { + + for _, left := range []interface{}{ + map[string]string{ + "c": "cv1", + }, + map[string]interface{}{ + "c": "cv1", + }, + map[interface{}]interface{}{ + "c": "cv1", + }, + } { + cfg := New() + + cfg.Set("", map[string]interface{}{ + "b": left, + }) + + cfg.Merge("", maps.Params{ + "b": maps.Params{ + "c": "cv2", + "d": "dv2", + }, + }) + + c.Assert(cfg.Get(""), qt.DeepEquals, maps.Params{ + "b": maps.Params{ + "c": "cv1", + "d": "dv2", + }, + }) + } + + for _, left := range []interface{}{ + map[string]string{ + "b": "bv1", + }, + map[string]interface{}{ + "b": "bv1", + }, + map[interface{}]interface{}{ + "b": "bv1", + }, + } { + + for _, right := range []interface{}{ + map[string]string{ + "b": "bv2", + "c": "cv2", + }, + map[string]interface{}{ + "b": "bv2", + "c": "cv2", + }, + map[interface{}]interface{}{ + "b": "bv2", + "c": "cv2", + }, + } { + cfg := New() + + cfg.Set("a", left) + + cfg.Merge("a", right) + + c.Assert(cfg.Get(""), qt.DeepEquals, maps.Params{ + "a": maps.Params{ + "b": "bv1", + "c": "cv2", + }, + }) + } + + } + + }) + c.Run("IsSet", func(c *qt.C) { cfg := New() |