github.com/triarius/goreleaser@v1.12.5/internal/pipe/linkedin/linkedin_test.go (about) 1 package linkedin 2 3 import ( 4 "testing" 5 6 "github.com/triarius/goreleaser/pkg/config" 7 "github.com/triarius/goreleaser/pkg/context" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestStringer(t *testing.T) { 12 require.Equal(t, Pipe{}.String(), "linkedin") 13 } 14 15 func TestDefault(t *testing.T) { 16 ctx := context.New(config.Project{}) 17 require.NoError(t, Pipe{}.Default(ctx)) 18 require.Equal(t, ctx.Config.Announce.LinkedIn.MessageTemplate, defaultMessageTemplate) 19 } 20 21 func TestAnnounceDisabled(t *testing.T) { 22 ctx := context.New(config.Project{}) 23 require.NoError(t, Pipe{}.Default(ctx)) 24 require.EqualError(t, Pipe{}.Announce(ctx), `failed to announce to linkedin: env: environment variable "LINKEDIN_ACCESS_TOKEN" should not be empty`) 25 } 26 27 func TestAnnounceInvalidTemplate(t *testing.T) { 28 ctx := context.New(config.Project{ 29 Announce: config.Announce{ 30 LinkedIn: config.LinkedIn{ 31 Enabled: true, 32 MessageTemplate: "{{ .Foo }", 33 }, 34 }, 35 }) 36 require.EqualError(t, Pipe{}.Announce(ctx), `failed to announce to linkedin: template: tmpl:1: unexpected "}" in operand`) 37 } 38 39 func TestAnnounceMissingEnv(t *testing.T) { 40 ctx := context.New(config.Project{ 41 Announce: config.Announce{ 42 LinkedIn: config.LinkedIn{ 43 Enabled: true, 44 }, 45 }, 46 }) 47 require.NoError(t, Pipe{}.Default(ctx)) 48 require.EqualError(t, Pipe{}.Announce(ctx), `failed to announce to linkedin: env: environment variable "LINKEDIN_ACCESS_TOKEN" should not be empty`) 49 } 50 51 func TestSkip(t *testing.T) { 52 t.Run("skip", func(t *testing.T) { 53 require.True(t, Pipe{}.Skip(context.New(config.Project{}))) 54 }) 55 56 t.Run("dont skip", func(t *testing.T) { 57 ctx := context.New(config.Project{ 58 Announce: config.Announce{ 59 LinkedIn: config.LinkedIn{ 60 Enabled: true, 61 }, 62 }, 63 }) 64 require.False(t, Pipe{}.Skip(ctx)) 65 }) 66 }