github.com/triarius/goreleaser@v1.12.5/internal/pipe/prebuild/prebuild_test.go (about)

     1  package prebuild
     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 TestRun(t *testing.T) {
    12  	t.Run("good", func(t *testing.T) {
    13  		ctx := context.New(config.Project{
    14  			Env:    []string{"FOO=bar"},
    15  			Builds: []config.Build{{Main: "{{ .Env.FOO }}"}},
    16  		})
    17  		require.NoError(t, Pipe{}.Run(ctx))
    18  		require.Equal(t, "bar", ctx.Config.Builds[0].Main)
    19  	})
    20  
    21  	t.Run("empty", func(t *testing.T) {
    22  		ctx := context.New(config.Project{
    23  			Env:    []string{"FOO="},
    24  			Builds: []config.Build{{Main: "{{ .Env.FOO }}"}},
    25  		})
    26  		require.NoError(t, Pipe{}.Run(ctx))
    27  		require.Equal(t, ".", ctx.Config.Builds[0].Main)
    28  	})
    29  
    30  	t.Run("bad", func(t *testing.T) {
    31  		ctx := context.New(config.Project{
    32  			Builds: []config.Build{{Main: "{{ .Env.FOO }}"}},
    33  		})
    34  		require.EqualError(t, Pipe{}.Run(ctx), `template: tmpl:1:7: executing "tmpl" at <.Env.FOO>: map has no entry for key "FOO"`)
    35  	})
    36  }
    37  
    38  func TestString(t *testing.T) {
    39  	require.NotEmpty(t, Pipe{}.String())
    40  }