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  }