package mergo_test import ( "testing" "dario.cat/mergo" ) func TestIssue123(t *testing.T) { src := map[string]interface{}{ "col1": nil, "col2": 4, "col3": nil, } dst := map[string]interface{}{ "col1": 2, "col2": 3, "col3": 3, } // Expected behavior if err := mergo.Merge(&dst, src, mergo.WithOverride); err != nil { t.Fatal(err) } testCases := []struct { expected interface{} key string }{ { nil, "col1", }, { 4, "col2", }, { nil, "col3", }, } for _, tC := range testCases { if dst[tC.key] != tC.expected { t.Fatalf("expected %v in dst[%q], got %v", tC.expected, tC.key, dst[tC.key]) } } }