From df53eef6f25c51a4af8052beaac500101258f641 Mon Sep 17 00:00:00 2001 From: Seila Gamo Date: Thu, 19 Sep 2024 12:25:20 +0200 Subject: [PATCH] internal/config: fix CR issues --- internal/config/merge.go | 17 +++++------------ internal/config/merge_test.go | 31 +++++++++++++++---------------- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/internal/config/merge.go b/internal/config/merge.go index 4c3dedc..fb6b93b 100644 --- a/internal/config/merge.go +++ b/internal/config/merge.go @@ -8,18 +8,11 @@ import ( "dario.cat/mergo" ) -// Merger has the ability to merge two configurations. -type Merger interface { - Merge(dst, src Config) (Config, error) -} - -// LavaMerger represents a merger for the Lava configuration. -type LavaMerger struct{} - -// Merge merges two configurations. The values of the configuration -// passed as first parameter will override those in the configuration -// passed as second parameter. -func (lm LavaMerger) Merge(dst, src Config) (Config, error) { +// merge merges two configurations. The values of the configuration +// passed as first parameter will be overridden by those in the +// configuration passed as second parameter avoiding overriding with +// nil values. +func merge(dst, src Config) (Config, error) { merged := Config{} mergeOpts := []func(*mergo.Config){ mergo.WithOverride, diff --git a/internal/config/merge_test.go b/internal/config/merge_test.go index 0fe6872..cdb9d7f 100644 --- a/internal/config/merge_test.go +++ b/internal/config/merge_test.go @@ -12,22 +12,22 @@ import ( func TestLavaMerger_Merge(t *testing.T) { tests := []struct { name string - cfg1 Config - cfg2 Config + dst Config + src Config want Config wantErr bool }{ { name: "Two empty configurations", - cfg1: Config{}, - cfg2: Config{}, + dst: Config{}, + src: Config{}, want: Config{}, wantErr: false, }, { name: "Simple case", - cfg1: Config{}, - cfg2: Config{ + dst: Config{}, + src: Config{ LavaVersion: ptr("v1.0.0"), }, want: Config{ @@ -37,7 +37,7 @@ func TestLavaMerger_Merge(t *testing.T) { }, { name: "Settings with default values won't override", - cfg1: Config{ + dst: Config{ LavaVersion: ptr("v1.0.0"), AgentConfig: AgentConfig{ PullPolicy: ptr(agentconfig.PullPolicyAlways), @@ -66,7 +66,7 @@ func TestLavaMerger_Merge(t *testing.T) { Metrics: ptr("metrics.json"), }, }, - cfg2: Config{}, + src: Config{}, want: Config{ LavaVersion: ptr("v1.0.0"), AgentConfig: AgentConfig{ @@ -102,7 +102,7 @@ func TestLavaMerger_Merge(t *testing.T) { }, { name: "Override value", - cfg1: Config{ + dst: Config{ LavaVersion: ptr("v1.0.0"), AgentConfig: AgentConfig{ PullPolicy: ptr(agentconfig.PullPolicyAlways), @@ -133,7 +133,7 @@ func TestLavaMerger_Merge(t *testing.T) { Metrics: ptr("metrics2.json"), }, }, - cfg2: Config{ + src: Config{ LavaVersion: ptr("v1.0.1"), AgentConfig: AgentConfig{ PullPolicy: ptr(agentconfig.PullPolicyNever), @@ -205,7 +205,7 @@ func TestLavaMerger_Merge(t *testing.T) { }, { name: "Append Exclusions", - cfg1: Config{ + dst: Config{ ReportConfig: ReportConfig{ Exclusions: []Exclusion{ { @@ -214,7 +214,7 @@ func TestLavaMerger_Merge(t *testing.T) { }, }, }, - cfg2: Config{ + src: Config{ ReportConfig: ReportConfig{ Exclusions: []Exclusion{ { @@ -239,7 +239,7 @@ func TestLavaMerger_Merge(t *testing.T) { }, { name: "Duplicated Exclusions", - cfg1: Config{ + dst: Config{ ReportConfig: ReportConfig{ Exclusions: []Exclusion{ { @@ -248,7 +248,7 @@ func TestLavaMerger_Merge(t *testing.T) { }, }, }, - cfg2: Config{ + src: Config{ ReportConfig: ReportConfig{ Exclusions: []Exclusion{ { @@ -270,8 +270,7 @@ func TestLavaMerger_Merge(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - lm := LavaMerger{} - got, err := lm.Merge(tt.cfg1, tt.cfg2) + got, err := merge(tt.dst, tt.src) if (err != nil) != tt.wantErr { t.Errorf("unexpected error value: %v", err) }