github.com/goreleaser/goreleaser@v1.25.1/internal/pipe/discord/discord_test.go (about) 1 package discord 2 3 import ( 4 "testing" 5 6 "github.com/goreleaser/goreleaser/internal/testctx" 7 "github.com/goreleaser/goreleaser/internal/testlib" 8 "github.com/goreleaser/goreleaser/pkg/config" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestStringer(t *testing.T) { 13 require.Equal(t, "discord", Pipe{}.String()) 14 } 15 16 func TestDefault(t *testing.T) { 17 ctx := testctx.New() 18 require.NoError(t, Pipe{}.Default(ctx)) 19 require.Equal(t, defaultMessageTemplate, ctx.Config.Announce.Discord.MessageTemplate) 20 } 21 22 func TestAnnounceInvalidTemplate(t *testing.T) { 23 ctx := testctx.NewWithCfg(config.Project{ 24 Announce: config.Announce{ 25 Discord: config.Discord{ 26 MessageTemplate: "{{ .Foo }", 27 }, 28 }, 29 }) 30 testlib.RequireTemplateError(t, Pipe{}.Announce(ctx)) 31 } 32 33 func TestAnnounceMissingEnv(t *testing.T) { 34 ctx := testctx.NewWithCfg(config.Project{ 35 Announce: config.Announce{ 36 Discord: config.Discord{}, 37 }, 38 }) 39 require.NoError(t, Pipe{}.Default(ctx)) 40 require.EqualError(t, Pipe{}.Announce(ctx), `discord: env: environment variable "DISCORD_WEBHOOK_ID" should not be empty; environment variable "DISCORD_WEBHOOK_TOKEN" should not be empty`) 41 } 42 43 func TestSkip(t *testing.T) { 44 t.Run("skip", func(t *testing.T) { 45 require.True(t, Pipe{}.Skip(testctx.New())) 46 }) 47 48 t.Run("dont skip", func(t *testing.T) { 49 ctx := testctx.NewWithCfg(config.Project{ 50 Announce: config.Announce{ 51 Discord: config.Discord{ 52 Enabled: true, 53 }, 54 }, 55 }) 56 require.False(t, Pipe{}.Skip(ctx)) 57 }) 58 } 59 60 func TestLive(t *testing.T) { 61 t.SkipNow() 62 t.Setenv("DISCORD_WEBHOOK_ID", "TODO") 63 t.Setenv("DISCORD_WEBHOOK_TOKEN", "TODO") 64 65 ctx := testctx.NewWithCfg(config.Project{ 66 Announce: config.Announce{ 67 Discord: config.Discord{ 68 MessageTemplate: "test", 69 Enabled: true, 70 }, 71 }, 72 }) 73 74 require.NoError(t, Pipe{}.Default(ctx)) 75 require.NoError(t, Pipe{}.Announce(ctx)) 76 }