github.com/goreleaser/goreleaser@v1.25.1/internal/pipe/announce/announce_test.go (about) 1 package announce 2 3 import ( 4 "testing" 5 6 "github.com/goreleaser/goreleaser/internal/skips" 7 "github.com/goreleaser/goreleaser/internal/testctx" 8 "github.com/goreleaser/goreleaser/pkg/config" 9 "github.com/hashicorp/go-multierror" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestDescription(t *testing.T) { 14 require.NotEmpty(t, Pipe{}.String()) 15 } 16 17 func TestAnnounce(t *testing.T) { 18 ctx := testctx.NewWithCfg(config.Project{ 19 Announce: config.Announce{ 20 Twitter: config.Twitter{ 21 Enabled: true, 22 }, 23 Mastodon: config.Mastodon{ 24 Enabled: true, 25 Server: "https://localhost:1234/", 26 }, 27 }, 28 }) 29 err := Pipe{}.Run(ctx) 30 require.Error(t, err) 31 merr := &multierror.Error{} 32 require.ErrorAs(t, err, &merr, "must be a multierror") 33 require.Len(t, merr.Errors, 2) 34 } 35 36 func TestAnnounceAllDisabled(t *testing.T) { 37 ctx := testctx.New() 38 require.NoError(t, Pipe{}.Run(ctx)) 39 } 40 41 func TestSkip(t *testing.T) { 42 t.Run("skip", func(t *testing.T) { 43 ctx := testctx.New(testctx.Skip(skips.Announce)) 44 b, err := Pipe{}.Skip(ctx) 45 require.NoError(t, err) 46 require.True(t, b) 47 }) 48 49 t.Run("skip on patches", func(t *testing.T) { 50 ctx := testctx.NewWithCfg(config.Project{ 51 Announce: config.Announce{ 52 Skip: "{{gt .Patch 0}}", 53 }, 54 }, testctx.WithSemver(0, 0, 1, "")) 55 b, err := Pipe{}.Skip(ctx) 56 require.NoError(t, err) 57 require.True(t, b) 58 }) 59 60 t.Run("invalid template", func(t *testing.T) { 61 ctx := testctx.NewWithCfg(config.Project{ 62 Announce: config.Announce{ 63 Skip: "{{if eq .Patch 123}", 64 }, 65 }, testctx.WithSemver(0, 0, 1, "")) 66 _, err := Pipe{}.Skip(ctx) 67 require.Error(t, err) 68 }) 69 70 t.Run("dont skip", func(t *testing.T) { 71 b, err := Pipe{}.Skip(testctx.New()) 72 require.NoError(t, err) 73 require.False(t, b) 74 }) 75 76 t.Run("dont skip based on template", func(t *testing.T) { 77 ctx := testctx.NewWithCfg(config.Project{ 78 Announce: config.Announce{ 79 Skip: "{{gt .Patch 0}}", 80 }, 81 }) 82 b, err := Pipe{}.Skip(ctx) 83 require.NoError(t, err) 84 require.False(t, b) 85 }) 86 }