github.com/joselitofilho/goreleaser@v0.155.1-0.20210123221854-e4891856c593/internal/pipe/defaults/defaults_test.go (about) 1 package defaults 2 3 import ( 4 "testing" 5 6 "github.com/goreleaser/goreleaser/internal/testlib" 7 "github.com/goreleaser/goreleaser/pkg/config" 8 "github.com/goreleaser/goreleaser/pkg/context" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestDescription(t *testing.T) { 13 require.NotEmpty(t, Pipe{}.String()) 14 } 15 16 func TestFillBasicData(t *testing.T) { 17 testlib.Mktmp(t) 18 testlib.GitInit(t) 19 testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git") 20 21 var ctx = &context.Context{ 22 TokenType: context.TokenTypeGitHub, 23 Config: config.Project{}, 24 } 25 26 require.NoError(t, Pipe{}.Run(ctx)) 27 require.Equal(t, "goreleaser", ctx.Config.Release.GitHub.Owner) 28 require.Equal(t, "goreleaser", ctx.Config.Release.GitHub.Name) 29 require.NotEmpty(t, ctx.Config.Builds) 30 require.Equal(t, "goreleaser", ctx.Config.Builds[0].Binary) 31 require.Equal(t, ".", ctx.Config.Builds[0].Main) 32 require.Contains(t, ctx.Config.Builds[0].Goos, "darwin") 33 require.Contains(t, ctx.Config.Builds[0].Goos, "linux") 34 require.Contains(t, ctx.Config.Builds[0].Goarch, "386") 35 require.Contains(t, ctx.Config.Builds[0].Goarch, "amd64") 36 require.Equal(t, "tar.gz", ctx.Config.Archives[0].Format) 37 require.Empty(t, ctx.Config.Dockers) 38 require.Equal(t, "https://github.com", ctx.Config.GitHubURLs.Download) 39 require.NotEmpty(t, ctx.Config.Archives[0].NameTemplate) 40 require.NotEmpty(t, ctx.Config.Builds[0].Ldflags) 41 require.NotEmpty(t, ctx.Config.Archives[0].Files) 42 require.NotEmpty(t, ctx.Config.Dist) 43 } 44 45 func TestFillPartial(t *testing.T) { 46 testlib.Mktmp(t) 47 testlib.GitInit(t) 48 testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git") 49 50 var ctx = &context.Context{ 51 Config: config.Project{ 52 GitHubURLs: config.GitHubURLs{ 53 Download: "https://github.company.com", 54 }, 55 Dist: "disttt", 56 Release: config.Release{ 57 GitHub: config.Repo{ 58 Owner: "goreleaser", 59 Name: "test", 60 }, 61 }, 62 Archives: []config.Archive{ 63 { 64 Files: []string{ 65 "glob/*", 66 }, 67 }, 68 }, 69 Builds: []config.Build{ 70 { 71 ID: "build1", 72 Binary: "testreleaser", 73 }, 74 {Goos: []string{"linux"}}, 75 { 76 ID: "build3", 77 Binary: "another", 78 Ignore: []config.IgnoredBuild{ 79 {Goos: "darwin", Goarch: "amd64"}, 80 }, 81 }, 82 }, 83 Dockers: []config.Docker{ 84 { 85 ImageTemplates: []string{"a/b"}, 86 }, 87 }, 88 Brews: []config.Homebrew{ 89 { 90 Description: "foo", 91 }, 92 }, 93 }, 94 } 95 require.NoError(t, Pipe{}.Run(ctx)) 96 require.Len(t, ctx.Config.Archives[0].Files, 1) 97 require.Equal(t, `bin.install "test"`, ctx.Config.Brews[0].Install) 98 require.NotEmpty(t, ctx.Config.Dockers[0].Goos) 99 require.NotEmpty(t, ctx.Config.Dockers[0].Goarch) 100 require.NotEmpty(t, ctx.Config.Dockers[0].Dockerfile) 101 require.Empty(t, ctx.Config.Dockers[0].Goarm) 102 require.Equal(t, "disttt", ctx.Config.Dist) 103 require.NotEqual(t, "https://github.com", ctx.Config.GitHubURLs.Download) 104 105 ctx = &context.Context{ 106 TokenType: context.TokenTypeGitea, 107 108 Config: config.Project{ 109 GiteaURLs: config.GiteaURLs{ 110 API: "https://gitea.com/api/v1", 111 }, 112 }, 113 } 114 require.NoError(t, Pipe{}.Run(ctx)) 115 require.Equal(t, "https://gitea.com", ctx.Config.GiteaURLs.Download) 116 }