github.com/triarius/goreleaser@v1.12.5/internal/commitauthor/author_test.go (about) 1 package commitauthor 2 3 import ( 4 "testing" 5 6 "github.com/triarius/goreleaser/pkg/config" 7 "github.com/triarius/goreleaser/pkg/context" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestGet(t *testing.T) { 12 t.Run("valid", func(t *testing.T) { 13 author, err := Get(context.New(config.Project{ 14 Env: []string{"NAME=foo", "MAIL=foo@bar"}, 15 }), config.CommitAuthor{ 16 Name: "{{.Env.NAME}}", 17 Email: "{{.Env.MAIL}}", 18 }) 19 require.NoError(t, err) 20 require.Equal(t, config.CommitAuthor{ 21 Name: "foo", 22 Email: "foo@bar", 23 }, author) 24 }) 25 26 t.Run("invalid name tmpl", func(t *testing.T) { 27 _, err := Get( 28 context.New(config.Project{}), 29 config.CommitAuthor{ 30 Name: "{{.Env.NOPE}}", 31 Email: "a", 32 }) 33 require.Error(t, err) 34 }) 35 36 t.Run("invalid email tmpl", func(t *testing.T) { 37 _, err := Get( 38 context.New(config.Project{}), 39 config.CommitAuthor{ 40 Name: "a", 41 Email: "{{.Env.NOPE}}", 42 }) 43 require.Error(t, err) 44 }) 45 } 46 47 func TestDefault(t *testing.T) { 48 t.Run("empty", func(t *testing.T) { 49 require.Equal(t, Default(config.CommitAuthor{}), config.CommitAuthor{ 50 Name: defaultName, 51 Email: defaultEmail, 52 }) 53 }) 54 55 t.Run("no name", func(t *testing.T) { 56 require.Equal(t, Default(config.CommitAuthor{ 57 Email: "a", 58 }), config.CommitAuthor{ 59 Name: defaultName, 60 Email: "a", 61 }) 62 }) 63 64 t.Run("no email", func(t *testing.T) { 65 require.Equal(t, Default(config.CommitAuthor{ 66 Name: "a", 67 }), config.CommitAuthor{ 68 Name: "a", 69 Email: defaultEmail, 70 }) 71 }) 72 }