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