From 1b4021d0dacaacc8c8670ead0a535c84279cc96b Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Mon, 24 Oct 2022 00:07:55 +0200 Subject: [PATCH] fix allow override --- merge.go | 2 +- merge_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 merge_test.go diff --git a/merge.go b/merge.go index 3675b6e..64f72ed 100644 --- a/merge.go +++ b/merge.go @@ -14,7 +14,7 @@ func (s *Settings[C]) Merge(change C) *Settings[C] { s.Lock() defer s.Unlock() - if err := mergo.Merge(&s.config, change); err != nil { + if err := mergo.Merge(&s.config, change, mergo.WithOverride, mergo.WithTypeCheck); err != nil { s.errors = append(s.errors, err) } diff --git a/merge_test.go b/merge_test.go new file mode 100644 index 0000000..006350a --- /dev/null +++ b/merge_test.go @@ -0,0 +1,25 @@ +// Copyright 2022 schukai GmbH +// SPDX-License-Identifier: AGPL-3.0 + +package configuration + +import ( + "github.com/stretchr/testify/assert" + "testing" +) + +func TestMerge(t *testing.T) { + var configS, configD ConfigStruct2 + + source := New(configS) + source.config.H.HA = 2 + + dest := New(configD) + dest.config.H.HA = 1 + + assert.Equal(t, dest.config.H.HA, 1) + dest.Merge(source.config) + + assert.Equal(t, dest.config.H.HA, 2) + +} -- GitLab