1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2024-12-31 01:53:50 +02:00
goreleaser/internal/commitauthor/author_test.go
Carlos Alexandro Becker b28a28efb6
feat: allow to template commit author (#2826)
* feat: allow to template commit author

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* chore: fmt

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-01-11 09:15:28 -03:00

73 lines
1.5 KiB
Go

package commitauthor
import (
"testing"
"github.com/goreleaser/goreleaser/pkg/config"
"github.com/goreleaser/goreleaser/pkg/context"
"github.com/stretchr/testify/require"
)
func TestGet(t *testing.T) {
t.Run("valid", func(t *testing.T) {
author, err := Get(context.New(config.Project{
Env: []string{"NAME=foo", "MAIL=foo@bar"},
}), config.CommitAuthor{
Name: "{{.Env.NAME}}",
Email: "{{.Env.MAIL}}",
})
require.NoError(t, err)
require.Equal(t, config.CommitAuthor{
Name: "foo",
Email: "foo@bar",
}, author)
})
t.Run("invalid name tmpl", func(t *testing.T) {
_, err := Get(
context.New(config.Project{}),
config.CommitAuthor{
Name: "{{.Env.NOPE}}",
Email: "a",
})
require.Error(t, err)
})
t.Run("invalid email tmpl", func(t *testing.T) {
_, err := Get(
context.New(config.Project{}),
config.CommitAuthor{
Name: "a",
Email: "{{.Env.NOPE}}",
})
require.Error(t, err)
})
}
func TestDefault(t *testing.T) {
t.Run("empty", func(t *testing.T) {
require.Equal(t, Default(config.CommitAuthor{}), config.CommitAuthor{
Name: defaultName,
Email: defaultEmail,
})
})
t.Run("no name", func(t *testing.T) {
require.Equal(t, Default(config.CommitAuthor{
Email: "a",
}), config.CommitAuthor{
Name: defaultName,
Email: "a",
})
})
t.Run("no email", func(t *testing.T) {
require.Equal(t, Default(config.CommitAuthor{
Name: "a",
}), config.CommitAuthor{
Name: "a",
Email: defaultEmail,
})
})
}