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 }