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  }