github.com/client9/goreleaser@v0.17.4-0.20170511023544-27e4b028926d/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 assert := assert.New(t) 19 20 var ctx = &context.Context{ 21 Config: config.Project{}, 22 } 23 24 assert.NoError(Pipe{}.Run(ctx)) 25 26 assert.Equal("goreleaser", ctx.Config.Release.GitHub.Owner) 27 assert.Equal("goreleaser", ctx.Config.Release.GitHub.Name) 28 assert.Equal("goreleaser", ctx.Config.Build.Binary) 29 assert.Equal(".", ctx.Config.Build.Main) 30 assert.Equal("tar.gz", ctx.Config.Archive.Format) 31 assert.Contains(ctx.Config.Build.Goos, "darwin") 32 assert.Contains(ctx.Config.Build.Goos, "linux") 33 assert.Contains(ctx.Config.Build.Goarch, "386") 34 assert.Contains(ctx.Config.Build.Goarch, "amd64") 35 assert.Contains(ctx.Config.Brew.Install, "bin.install \"goreleaser\"") 36 assert.NotEmpty( 37 ctx.Config.Archive.Replacements, 38 ctx.Config.Archive.NameTemplate, 39 ctx.Config.Build.Ldflags, 40 ctx.Config.Archive.Files, 41 ) 42 } 43 44 func TestFillPartial(t *testing.T) { 45 assert := assert.New(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 }, 56 } 57 assert.NoError(Pipe{}.Run(ctx)) 58 } 59 60 func TestFilesFilled(t *testing.T) { 61 assert := assert.New(t) 62 63 var ctx = &context.Context{ 64 Config: config.Project{ 65 Archive: config.Archive{ 66 Files: []string{ 67 "README.md", 68 }, 69 }, 70 }, 71 } 72 73 assert.NoError(Pipe{}.Run(ctx)) 74 assert.Len(ctx.Config.Archive.Files, 1) 75 } 76 77 func TestAcceptFiles(t *testing.T) { 78 var files = []string{ 79 "LICENSE.md", 80 "LIceNSE.txt", 81 "LICENSE", 82 "LICENCE.txt", 83 "LICEncE", 84 "README", 85 "READme.md", 86 "CHANGELOG.txt", 87 "ChanGELOG.md", 88 } 89 90 for _, file := range files { 91 t.Run(file, func(t *testing.T) { 92 assert.True(t, accept(file)) 93 }) 94 } 95 } 96 97 func TestNotAGitRepo(t *testing.T) { 98 var assert = assert.New(t) 99 folder, err := ioutil.TempDir("", "goreleasertest") 100 assert.NoError(err) 101 previous, err := os.Getwd() 102 assert.NoError(err) 103 assert.NoError(os.Chdir(folder)) 104 defer func() { 105 assert.NoError(os.Chdir(previous)) 106 }() 107 var ctx = &context.Context{ 108 Config: config.Project{}, 109 } 110 assert.Error(Pipe{}.Run(ctx)) 111 }