github.com/goreleaser/goreleaser@v1.25.1/internal/pipe/opencollective/opencollective_test.go (about) 1 package opencollective 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, "opencollective", 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, defaultTitleTemplate, ctx.Config.Announce.OpenCollective.TitleTemplate) 20 require.Equal(t, defaultMessageTemplate, ctx.Config.Announce.OpenCollective.MessageTemplate) 21 } 22 23 func TestAnnounceInvalidTemplate(t *testing.T) { 24 ctx := testctx.NewWithCfg(config.Project{ 25 Announce: config.Announce{ 26 OpenCollective: config.OpenCollective{ 27 MessageTemplate: "{{ .Foo }", 28 }, 29 }, 30 }) 31 testlib.RequireTemplateError(t, Pipe{}.Announce(ctx)) 32 } 33 34 func TestAnnounceMissingEnv(t *testing.T) { 35 ctx := testctx.NewWithCfg(config.Project{ 36 Announce: config.Announce{ 37 OpenCollective: config.OpenCollective{}, 38 }, 39 }) 40 require.NoError(t, Pipe{}.Default(ctx)) 41 require.EqualError(t, Pipe{}.Announce(ctx), `opencollective: env: environment variable "OPENCOLLECTIVE_TOKEN" should not be empty`) 42 } 43 44 func TestSkip(t *testing.T) { 45 t.Run("skip", func(t *testing.T) { 46 require.True(t, Pipe{}.Skip(testctx.New())) 47 }) 48 49 t.Run("skip empty slug", func(t *testing.T) { 50 require.True(t, Pipe{}.Skip(testctx.NewWithCfg(config.Project{ 51 Announce: config.Announce{ 52 OpenCollective: config.OpenCollective{ 53 Enabled: true, 54 Slug: "", // empty 55 }, 56 }, 57 }))) 58 }) 59 60 t.Run("dont skip", func(t *testing.T) { 61 require.False(t, Pipe{}.Skip(testctx.NewWithCfg(config.Project{ 62 Announce: config.Announce{ 63 OpenCollective: config.OpenCollective{ 64 Enabled: true, 65 Slug: "goreleaser", 66 }, 67 }, 68 }))) 69 }) 70 }