2022-01-11 09:15:28 -03:00
|
|
|
package commitauthor
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2023-03-02 00:01:11 -03:00
|
|
|
"github.com/goreleaser/goreleaser/internal/testctx"
|
2022-01-11 09:15:28 -03:00
|
|
|
"github.com/goreleaser/goreleaser/pkg/config"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestGet(t *testing.T) {
|
|
|
|
t.Run("valid", func(t *testing.T) {
|
2023-03-02 00:01:11 -03:00
|
|
|
author, err := Get(testctx.NewWithCfg(config.Project{
|
2022-01-11 09:15:28 -03:00
|
|
|
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(
|
2023-03-02 00:01:11 -03:00
|
|
|
testctx.New(),
|
2022-01-11 09:15:28 -03:00
|
|
|
config.CommitAuthor{
|
|
|
|
Name: "{{.Env.NOPE}}",
|
|
|
|
Email: "a",
|
|
|
|
})
|
|
|
|
require.Error(t, err)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("invalid email tmpl", func(t *testing.T) {
|
|
|
|
_, err := Get(
|
2023-03-02 00:01:11 -03:00
|
|
|
testctx.New(),
|
2022-01-11 09:15:28 -03:00
|
|
|
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,
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|