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