github.com/triarius/goreleaser@v1.12.5/internal/pipe/teams/teams_test.go (about) 1 package teams 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 TestStringer(t *testing.T) { 12 require.Equal(t, Pipe{}.String(), "teams") 13 } 14 15 func TestDefault(t *testing.T) { 16 ctx := context.New(config.Project{}) 17 require.NoError(t, Pipe{}.Default(ctx)) 18 require.Equal(t, ctx.Config.Announce.Teams.MessageTemplate, defaultMessageTemplate) 19 } 20 21 func TestAnnounceInvalidTemplate(t *testing.T) { 22 ctx := context.New(config.Project{ 23 Announce: config.Announce{ 24 Teams: config.Teams{ 25 Enabled: true, 26 MessageTemplate: "{{ .Foo }", 27 }, 28 }, 29 }) 30 require.EqualError(t, Pipe{}.Announce(ctx), `announce: failed to announce to teams: template: tmpl:1: unexpected "}" in operand`) 31 } 32 33 func TestAnnounceMissingEnv(t *testing.T) { 34 ctx := context.New(config.Project{ 35 Announce: config.Announce{ 36 Teams: config.Teams{ 37 Enabled: true, 38 }, 39 }, 40 }) 41 require.NoError(t, Pipe{}.Default(ctx)) 42 require.EqualError(t, Pipe{}.Announce(ctx), `announce: failed to announce to teams: env: environment variable "TEAMS_WEBHOOK" should not be empty`) 43 } 44 45 func TestSkip(t *testing.T) { 46 t.Run("skip", func(t *testing.T) { 47 require.True(t, Pipe{}.Skip(context.New(config.Project{}))) 48 }) 49 50 t.Run("dont skip", func(t *testing.T) { 51 ctx := context.New(config.Project{ 52 Announce: config.Announce{ 53 Teams: config.Teams{ 54 Enabled: true, 55 }, 56 }, 57 }) 58 require.False(t, Pipe{}.Skip(ctx)) 59 }) 60 }