Codebase list golang-github-imdario-mergo / bd63fc79-05f6-4175-a57a-a1e9f503f8a2/main issue149_test.go
bd63fc79-05f6-4175-a57a-a1e9f503f8a2/main

Tree @bd63fc79-05f6-4175-a57a-a1e9f503f8a2/main (Download .tar.gz)

issue149_test.go @bd63fc79-05f6-4175-a57a-a1e9f503f8a2/mainraw · history · blame

package mergo_test

import (
	"testing"

	"github.com/imdario/mergo"
)

type user struct {
	Name string
}

type token struct {
	User  *user
	Token *string
}

func TestIssue149(t *testing.T) {
	dest := &token{
		User: &user{
			Name: "destination",
		},
		Token: nil,
	}
	tokenValue := "Issue149"
	src := &token{
		User:  nil,
		Token: &tokenValue,
	}
	if err := mergo.Merge(dest, src, mergo.WithOverwriteWithEmptyValue); err != nil {
		t.Error(err)
	}
	if dest.User != nil {
		t.Errorf("expected nil User, got %q", dest.User)
	}
	if dest.Token == nil {
		t.Errorf("expected not nil Token, got %q", *dest.Token)
	}
}