package pack import ( "testing" "github.com/stretchr/testify/assert" "edge-infra.dev/pkg/f8n/warehouse/lift" ) var ( dummyInfraCfg = lift.CapabilityConfig{ Package: "fake/infra-package", ResourceMatcher: lift.ResourceMatcher{ APIGroups: []string{"fake.apigroup.u"}, }, } ) func TestMergeConfig(t *testing.T) { tcs := map[string]struct { src lift.Config dst lift.Config exp lift.Config }{ "destination is preserved if source is empty": { src: lift.Config{}, dst: lift.Config{Infrastructure: dummyInfraCfg}, exp: lift.Config{Infrastructure: dummyInfraCfg}, }, "source overrides destination": { src: lift.Config{Infrastructure: lift.CapabilityConfig{ Package: "fake/alternative-infra-package", ResourceMatcher: lift.ResourceMatcher{}, }}, dst: lift.Config{Infrastructure: dummyInfraCfg}, exp: lift.Config{Infrastructure: lift.CapabilityConfig{ Package: "fake/alternative-infra-package", ResourceMatcher: lift.ResourceMatcher{}, }}, }, } for name, tc := range tcs { t.Run(name, func(t *testing.T) { actual, _ := mergeCfg(tc.src, tc.dst) assert.Equal(t, tc.exp, actual) }) } }