github.com/goreleaser/goreleaser@v1.25.1/internal/commitauthor/author_test.go (about) 1 package commitauthor 2 3 import ( 4 "testing" 5 6 "github.com/goreleaser/goreleaser/internal/testctx" 7 "github.com/goreleaser/goreleaser/pkg/config" 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(testctx.NewWithCfg(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 testctx.New(), 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 testctx.New(), 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, config.CommitAuthor{ 50 Name: defaultName, 51 Email: defaultEmail, 52 }, Default(config.CommitAuthor{})) 53 }) 54 55 t.Run("no name", func(t *testing.T) { 56 require.Equal(t, config.CommitAuthor{ 57 Name: defaultName, 58 Email: "a", 59 }, Default(config.CommitAuthor{ 60 Email: "a", 61 })) 62 }) 63 64 t.Run("no email", func(t *testing.T) { 65 require.Equal(t, config.CommitAuthor{ 66 Name: "a", 67 Email: defaultEmail, 68 }, Default(config.CommitAuthor{ 69 Name: "a", 70 })) 71 }) 72 }