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