mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-17 20:47:50 +02:00
test: fixed tests
This commit is contained in:
parent
1d0911ba1f
commit
6b0e6686a5
@ -6,6 +6,7 @@ import (
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/goreleaser/goreleaser/config"
|
||||
"github.com/goreleaser/goreleaser/internal/testlib"
|
||||
@ -21,6 +22,7 @@ func TestRelease(t *testing.T) {
|
||||
_, back := setup(t)
|
||||
defer back()
|
||||
var flags = fakeFlags{
|
||||
t: t,
|
||||
flags: map[string]string{
|
||||
"skip-publish": "true",
|
||||
"skip-validate": "true",
|
||||
@ -35,6 +37,7 @@ func TestSnapshotRelease(t *testing.T) {
|
||||
_, back := setup(t)
|
||||
defer back()
|
||||
var flags = fakeFlags{
|
||||
t: t,
|
||||
flags: map[string]string{
|
||||
"snapshot": "true",
|
||||
"parallelism": "4",
|
||||
@ -45,6 +48,7 @@ func TestSnapshotRelease(t *testing.T) {
|
||||
|
||||
func TestConfigFileIsSetAndDontExist(t *testing.T) {
|
||||
var flags = fakeFlags{
|
||||
t: t,
|
||||
flags: map[string]string{
|
||||
"config": "/this/wont/exist",
|
||||
},
|
||||
@ -70,6 +74,7 @@ func TestConfigFlagNotSetButExists(t *testing.T) {
|
||||
),
|
||||
)
|
||||
var flags = fakeFlags{
|
||||
t: t,
|
||||
flags: map[string]string{},
|
||||
}
|
||||
assert.Equal(t, name, getConfigFile(flags))
|
||||
@ -79,6 +84,7 @@ func TestConfigFlagNotSetButExists(t *testing.T) {
|
||||
|
||||
func TestReleaseNotesFileDontExist(t *testing.T) {
|
||||
var flags = fakeFlags{
|
||||
t: t,
|
||||
flags: map[string]string{
|
||||
"release-notes": "/this/also/wont/exist",
|
||||
},
|
||||
@ -92,6 +98,7 @@ func TestCustomReleaseNotesFile(t *testing.T) {
|
||||
var releaseNotes = filepath.Join(folder, "notes.md")
|
||||
createFile(t, releaseNotes, "nothing important at all")
|
||||
var flags = fakeFlags{
|
||||
t: t,
|
||||
flags: map[string]string{
|
||||
"release-notes": releaseNotes,
|
||||
"skip-publish": "true",
|
||||
@ -107,6 +114,7 @@ func TestBrokenPipe(t *testing.T) {
|
||||
defer back()
|
||||
createFile(t, "main.go", "not a valid go file")
|
||||
var flags = fakeFlags{
|
||||
t: t,
|
||||
flags: map[string]string{
|
||||
"skip-publish": "true",
|
||||
"skip-validate": "true",
|
||||
@ -149,6 +157,7 @@ func TestInitProjectDefaultPipeFails(t *testing.T) {
|
||||
|
||||
// fakeFlags is a mock of the cli flags
|
||||
type fakeFlags struct {
|
||||
t *testing.T
|
||||
flags map[string]string
|
||||
}
|
||||
|
||||
@ -169,6 +178,12 @@ func (f fakeFlags) Bool(s string) bool {
|
||||
return f.flags[s] == "true"
|
||||
}
|
||||
|
||||
func (f fakeFlags) Duration(s string) time.Duration {
|
||||
result, err := time.ParseDuration(f.flags[s])
|
||||
assert.NoError(f.t, err)
|
||||
return result
|
||||
}
|
||||
|
||||
func setup(t *testing.T) (current string, back func()) {
|
||||
folder, err := ioutil.TempDir("", "goreleaser")
|
||||
assert.NoError(t, err)
|
||||
|
@ -21,11 +21,21 @@ func TestPipeDescription(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRun(t *testing.T) {
|
||||
assert.NoError(t, run(buildtarget.Runtime, []string{"go", "list", "./..."}, emptyEnv))
|
||||
assert.NoError(t, run(
|
||||
context.New(config.Project{}),
|
||||
buildtarget.Runtime,
|
||||
[]string{"go", "list", "./..."},
|
||||
emptyEnv,
|
||||
))
|
||||
}
|
||||
|
||||
func TestRunInvalidCommand(t *testing.T) {
|
||||
assert.Error(t, run(buildtarget.Runtime, []string{"gggggo", "nope"}, emptyEnv))
|
||||
assert.Error(t, run(
|
||||
context.New(config.Project{}),
|
||||
buildtarget.Runtime,
|
||||
[]string{"gggggo", "nope"},
|
||||
emptyEnv,
|
||||
))
|
||||
}
|
||||
|
||||
func TestBuild(t *testing.T) {
|
||||
|
@ -203,30 +203,28 @@ func TestRunPipe(t *testing.T) {
|
||||
for name, docker := range table {
|
||||
t.Run(name, func(tt *testing.T) {
|
||||
folder, err := ioutil.TempDir("", "archivetest")
|
||||
assert.NoError(t, err)
|
||||
assert.NoError(tt, err)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
assert.NoError(t, os.Mkdir(dist, 0755))
|
||||
assert.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0755))
|
||||
assert.NoError(tt, os.Mkdir(dist, 0755))
|
||||
assert.NoError(tt, os.Mkdir(filepath.Join(dist, "mybin"), 0755))
|
||||
var binPath = filepath.Join(dist, "mybin", "mybin")
|
||||
_, err = os.Create(binPath)
|
||||
assert.NoError(t, err)
|
||||
assert.NoError(tt, err)
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: docker.publish,
|
||||
Parallelism: 4,
|
||||
Artifacts: artifact.New(),
|
||||
Git: context.GitInfo{
|
||||
CurrentTag: "v1.0.0",
|
||||
var ctx = context.New(config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
Dockers: []config.Docker{
|
||||
docker.docker,
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
Dockers: []config.Docker{
|
||||
docker.docker,
|
||||
},
|
||||
},
|
||||
Env: map[string]string{"FOO": "123"},
|
||||
})
|
||||
ctx.Publish = true
|
||||
ctx.Env = map[string]string{
|
||||
"FOO": "123",
|
||||
}
|
||||
ctx.Version = "1.0.0"
|
||||
ctx.Git = context.GitInfo{
|
||||
CurrentTag: "v1.0.0",
|
||||
}
|
||||
for _, os := range []string{"linux", "darwin"} {
|
||||
for _, arch := range []string{"amd64", "386"} {
|
||||
@ -252,14 +250,17 @@ func TestRunPipe(t *testing.T) {
|
||||
if docker.err == "" {
|
||||
assert.NoError(tt, err)
|
||||
} else {
|
||||
assert.Contains(tt, err.Error(), docker.err)
|
||||
assert.Error(tt, err)
|
||||
if err != nil {
|
||||
assert.Contains(tt, err.Error(), docker.err)
|
||||
}
|
||||
}
|
||||
|
||||
// this might should not fail as the image should have been created when
|
||||
// the step ran
|
||||
for _, img := range docker.expect {
|
||||
t.Log("removing docker image", img)
|
||||
assert.NoError(t, exec.Command("docker", "rmi", img).Run(), "could not delete image %s", img)
|
||||
tt.Log("removing docker image", img)
|
||||
assert.NoError(tt, exec.Command("docker", "rmi", img).Run(), "could not delete image %s", img)
|
||||
}
|
||||
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user