github.com/goreleaser/goreleaser@v1.25.1/pkg/context/context_test.go (about)

     1  package context
     2  
     3  import (
     4  	"runtime"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/goreleaser/goreleaser/pkg/config"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestNew(t *testing.T) {
    13  	t.Setenv("FOO", "NOT BAR")
    14  	t.Setenv("BAR", "1")
    15  	ctx := New(config.Project{
    16  		Env: []string{
    17  			"FOO=BAR",
    18  		},
    19  	})
    20  	require.Equal(t, "BAR", ctx.Env["FOO"])
    21  	require.Equal(t, "1", ctx.Env["BAR"])
    22  	require.Equal(t, 4, ctx.Parallelism)
    23  	require.Equal(t, runtime.GOOS, ctx.Runtime.Goos)
    24  	require.Equal(t, runtime.GOARCH, ctx.Runtime.Goarch)
    25  }
    26  
    27  func TestNewWithTimeout(t *testing.T) {
    28  	ctx, cancel := NewWithTimeout(config.Project{}, time.Second)
    29  	require.NotEmpty(t, ctx.Env)
    30  	require.Equal(t, 4, ctx.Parallelism)
    31  	cancel()
    32  	<-ctx.Done()
    33  	require.EqualError(t, ctx.Err(), `context canceled`)
    34  }
    35  
    36  func TestToEnv(t *testing.T) {
    37  	require.Equal(t, Env{"FOO": "BAR"}, ToEnv([]string{"=nope", "FOO=BAR"}))
    38  	require.Equal(t, Env{"FOO": "BAR"}, ToEnv([]string{"nope", "FOO=BAR"}))
    39  	require.Equal(t, Env{"FOO": "BAR", "nope": ""}, ToEnv([]string{"nope=", "FOO=BAR"}))
    40  }