github.com/marianogappa/goreleaser@v0.26.2-0.20170715090149-96acd0a9fc46/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 assert = assert.New(t) 19 var ctx = &context.Context{ 20 Config: config.Project{}, 21 } 22 23 assert.NoError(Pipe{}.Run(ctx)) 24 assert.Equal("goreleaser", ctx.Config.Release.GitHub.Owner) 25 assert.Equal("goreleaser", ctx.Config.Release.GitHub.Name) 26 assert.NotEmpty(ctx.Config.Builds) 27 assert.Equal("goreleaser", ctx.Config.Builds[0].Binary) 28 assert.Equal(".", ctx.Config.Builds[0].Main) 29 assert.Contains(ctx.Config.Builds[0].Goos, "darwin") 30 assert.Contains(ctx.Config.Builds[0].Goos, "linux") 31 assert.Contains(ctx.Config.Builds[0].Goarch, "386") 32 assert.Contains(ctx.Config.Builds[0].Goarch, "amd64") 33 assert.Equal("tar.gz", ctx.Config.Archive.Format) 34 assert.Contains(ctx.Config.Brew.Install, "bin.install \"goreleaser\"") 35 assert.NotEmpty( 36 ctx.Config.Archive.NameTemplate, 37 ctx.Config.Builds[0].Ldflags, 38 ctx.Config.Archive.Files, 39 ) 40 } 41 42 func TestFillPartial(t *testing.T) { 43 var assert = assert.New(t) 44 45 var ctx = &context.Context{ 46 Config: config.Project{ 47 Release: config.Release{ 48 GitHub: config.Repo{ 49 Owner: "goreleaser", 50 Name: "test", 51 }, 52 }, 53 Archive: config.Archive{ 54 Files: []string{ 55 "glob/*", 56 }, 57 }, 58 Builds: []config.Build{ 59 {Binary: "testreleaser"}, 60 {Goos: []string{"linux"}}, 61 { 62 Binary: "another", 63 Ignore: []config.IgnoredBuild{ 64 {Goos: "darwin", Goarch: "amd64"}, 65 }, 66 }, 67 }, 68 }, 69 } 70 assert.NoError(Pipe{}.Run(ctx)) 71 assert.Len(ctx.Config.Archive.Files, 1) 72 assert.Equal(`bin.install "testreleaser"`, ctx.Config.Brew.Install) 73 } 74 75 func TestFillSingleBuild(t *testing.T) { 76 var assert = assert.New(t) 77 78 var ctx = &context.Context{ 79 Config: config.Project{ 80 SingleBuild: config.Build{ 81 Main: "testreleaser", 82 }, 83 }, 84 } 85 assert.NoError(Pipe{}.Run(ctx)) 86 assert.Len(ctx.Config.Builds, 1) 87 assert.Equal(ctx.Config.Builds[0].Binary, "goreleaser") 88 } 89 90 func TestNotAGitRepo(t *testing.T) { 91 var assert = assert.New(t) 92 folder, err := ioutil.TempDir("", "goreleasertest") 93 assert.NoError(err) 94 previous, err := os.Getwd() 95 assert.NoError(err) 96 assert.NoError(os.Chdir(folder)) 97 defer func() { 98 assert.NoError(os.Chdir(previous)) 99 }() 100 var ctx = &context.Context{ 101 Config: config.Project{}, 102 } 103 assert.Error(Pipe{}.Run(ctx)) 104 }