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