package mergo import ( "encoding/json" "testing" ) var ( data = `{"FirstSlice":[], "SecondSlice": null}` ) type settings struct { FirstSlice []string `json:"FirstSlice"` SecondSlice []string `json:"SecondSlice"` } func TestIssue125MergeWithOverwrite(t *testing.T) { defaultSettings := settings{ FirstSlice: []string{}, SecondSlice: []string{}, } var something settings if err := json.Unmarshal([]byte(data), &something); err != nil { t.Errorf("Error while Unmarshalling maprequest: %s", err) } if err := Merge(&something, defaultSettings, WithOverrideEmptySlice); err != nil { t.Errorf("Error while merging: %s", err) } if something.FirstSlice == nil { t.Error("Invalid merging first slice") } if something.SecondSlice == nil { t.Error("Invalid merging second slice") } }