github.com/tomsquest/goreleaser@v0.34.3-0.20171008022654-7d6ef4d338b3/pipeline/defaults/defaults_test.go (about) 1 package defaults 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 8 "github.com/goreleaser/goreleaser/config" 9 "github.com/goreleaser/goreleaser/context" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestDescription(t *testing.T) { 14 assert.NotEmpty(t, Pipe{}.Description()) 15 } 16 17 func TestFillBasicData(t *testing.T) { 18 var ctx = &context.Context{ 19 Config: config.Project{}, 20 } 21 22 assert.NoError(t, Pipe{}.Run(ctx)) 23 assert.Equal(t, "goreleaser", ctx.Config.Release.GitHub.Owner) 24 assert.Equal(t, "goreleaser", ctx.Config.Release.GitHub.Name) 25 assert.NotEmpty(t, ctx.Config.Builds) 26 assert.Equal(t, "goreleaser", ctx.Config.Builds[0].Binary) 27 assert.Equal(t, ".", ctx.Config.Builds[0].Main) 28 assert.Contains(t, ctx.Config.Builds[0].Goos, "darwin") 29 assert.Contains(t, ctx.Config.Builds[0].Goos, "linux") 30 assert.Contains(t, ctx.Config.Builds[0].Goarch, "386") 31 assert.Contains(t, ctx.Config.Builds[0].Goarch, "amd64") 32 assert.Equal(t, "tar.gz", ctx.Config.Archive.Format) 33 assert.Contains(t, ctx.Config.Brew.Install, "bin.install \"goreleaser\"") 34 assert.Empty(t, ctx.Config.Dockers) 35 assert.Equal(t, ctx.Config.Brew.CommitAuthor.Name, "goreleaserbot") 36 assert.Equal(t, ctx.Config.Brew.CommitAuthor.Email, "goreleaser@carlosbecker.com") 37 assert.NotEmpty( 38 t, 39 ctx.Config.Archive.NameTemplate, 40 ctx.Config.Builds[0].Ldflags, 41 ctx.Config.Archive.Files, 42 ) 43 } 44 45 func TestFillPartial(t *testing.T) { 46 47 var ctx = &context.Context{ 48 Config: config.Project{ 49 Release: config.Release{ 50 GitHub: config.Repo{ 51 Owner: "goreleaser", 52 Name: "test", 53 }, 54 }, 55 Archive: config.Archive{ 56 Files: []string{ 57 "glob/*", 58 }, 59 }, 60 Builds: []config.Build{ 61 {Binary: "testreleaser"}, 62 {Goos: []string{"linux"}}, 63 { 64 Binary: "another", 65 Ignore: []config.IgnoredBuild{ 66 {Goos: "darwin", Goarch: "amd64"}, 67 }, 68 }, 69 }, 70 Dockers: []config.Docker{ 71 {Image: "a/b"}, 72 }, 73 }, 74 } 75 assert.NoError(t, Pipe{}.Run(ctx)) 76 assert.Len(t, ctx.Config.Archive.Files, 1) 77 assert.Equal(t, `bin.install "testreleaser"`, ctx.Config.Brew.Install) 78 assert.NotEmpty(t, ctx.Config.Dockers[0].Binary) 79 assert.NotEmpty(t, ctx.Config.Dockers[0].Goos) 80 assert.NotEmpty(t, ctx.Config.Dockers[0].Goarch) 81 assert.NotEmpty(t, ctx.Config.Dockers[0].Dockerfile) 82 assert.Empty(t, ctx.Config.Dockers[0].Goarm) 83 } 84 85 func TestFillSingleBuild(t *testing.T) { 86 87 var ctx = &context.Context{ 88 Config: config.Project{ 89 SingleBuild: config.Build{ 90 Main: "testreleaser", 91 }, 92 }, 93 } 94 assert.NoError(t, Pipe{}.Run(ctx)) 95 assert.Len(t, ctx.Config.Builds, 1) 96 assert.Equal(t, ctx.Config.Builds[0].Binary, "goreleaser") 97 } 98 99 func TestNotAGitRepo(t *testing.T) { 100 folder, err := ioutil.TempDir("", "goreleasertest") 101 assert.NoError(t, err) 102 previous, err := os.Getwd() 103 assert.NoError(t, err) 104 assert.NoError(t, os.Chdir(folder)) 105 defer func() { 106 assert.NoError(t, os.Chdir(previous)) 107 }() 108 var ctx = &context.Context{ 109 Config: config.Project{}, 110 } 111 assert.Error(t, Pipe{}.Run(ctx)) 112 }