1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-08 03:31:59 +02:00
goreleaser/pkg/context/context_test.go
Carlos Alexandro Becker 9d481d4630
feat: expose runtime goos and goarch on templates and metadata (#2859)
* feat: expose runtime goos and goarch on templates and metadata

* test: fix duplicated map literal in some os/arch

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-01-31 22:36:22 -03:00

42 lines
1.1 KiB
Go

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"}))
}