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  }