github.com/goreleaser/goreleaser@v1.25.1/internal/pipe/defaults/defaults_test.go (about) 1 package defaults 2 3 import ( 4 "testing" 5 6 "github.com/goreleaser/goreleaser/internal/testctx" 7 "github.com/goreleaser/goreleaser/internal/testlib" 8 "github.com/goreleaser/goreleaser/pkg/config" 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 ctx := testctx.New(testctx.GitHubTokenType) 21 require.NoError(t, Pipe{}.Run(ctx)) 22 require.Equal(t, "goreleaser", ctx.Config.Release.GitHub.Owner) 23 require.Equal(t, "goreleaser", ctx.Config.Release.GitHub.Name) 24 require.NotEmpty(t, ctx.Config.Builds) 25 require.Equal(t, "goreleaser", ctx.Config.Builds[0].Binary) 26 require.Equal(t, ".", ctx.Config.Builds[0].Main) 27 require.Contains(t, ctx.Config.Builds[0].Goos, "darwin") 28 require.Contains(t, ctx.Config.Builds[0].Goos, "linux") 29 require.Contains(t, ctx.Config.Builds[0].Goarch, "386") 30 require.Contains(t, ctx.Config.Builds[0].Goarch, "amd64") 31 require.Equal(t, "tar.gz", ctx.Config.Archives[0].Format) 32 require.Empty(t, ctx.Config.Dockers) 33 require.Equal(t, "https://github.com", ctx.Config.GitHubURLs.Download) 34 require.NotEmpty(t, ctx.Config.Archives[0].NameTemplate) 35 require.NotEmpty(t, ctx.Config.Builds[0].Ldflags) 36 require.NotEmpty(t, ctx.Config.Archives[0].Files) 37 require.NotEmpty(t, ctx.Config.Dist) 38 } 39 40 func TestFillPartial(t *testing.T) { 41 testlib.Mktmp(t) 42 testlib.GitInit(t) 43 testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git") 44 45 ctx := testctx.NewWithCfg(config.Project{ 46 GitHubURLs: config.GitHubURLs{ 47 Download: "https://github.company.com", 48 }, 49 Dist: "disttt", 50 Release: config.Release{ 51 GitHub: config.Repo{ 52 Owner: "goreleaser", 53 Name: "test", 54 }, 55 }, 56 Archives: []config.Archive{ 57 { 58 Files: []config.File{ 59 {Source: "glob/*"}, 60 }, 61 }, 62 }, 63 Builds: []config.Build{ 64 { 65 ID: "build1", 66 Binary: "testreleaser", 67 }, 68 {Goos: []string{"linux"}}, 69 { 70 ID: "build3", 71 Binary: "another", 72 Ignore: []config.IgnoredBuild{ 73 {Goos: "darwin", Goarch: "amd64"}, 74 }, 75 }, 76 }, 77 Dockers: []config.Docker{ 78 { 79 ImageTemplates: []string{"a/b"}, 80 }, 81 }, 82 Brews: []config.Homebrew{ 83 { 84 Description: "foo", 85 }, 86 }, 87 }) 88 require.NoError(t, Pipe{}.Run(ctx)) 89 require.Len(t, ctx.Config.Archives[0].Files, 1) 90 require.NotEmpty(t, ctx.Config.Dockers[0].Goos) 91 require.NotEmpty(t, ctx.Config.Dockers[0].Goarch) 92 require.NotEmpty(t, ctx.Config.Dockers[0].Goarm) 93 require.NotEmpty(t, ctx.Config.Dockers[0].Goamd64) 94 require.NotEmpty(t, ctx.Config.Dockers[0].Dockerfile) 95 require.Equal(t, "disttt", ctx.Config.Dist) 96 require.NotEqual(t, "https://github.com", ctx.Config.GitHubURLs.Download) 97 98 ctx = testctx.NewWithCfg(config.Project{ 99 GiteaURLs: config.GiteaURLs{ 100 API: "https://gitea.com/api/v1/", 101 }, 102 }, testctx.GitHubTokenType) 103 104 require.NoError(t, Pipe{}.Run(ctx)) 105 require.Equal(t, "https://gitea.com", ctx.Config.GiteaURLs.Download) 106 } 107 108 func TestGiteaTemplateDownloadURL(t *testing.T) { 109 tests := []struct { 110 name string 111 apiURL string 112 wantErr bool 113 }{ 114 { 115 name: "string_url", 116 apiURL: "https://gitea.com/api/v1", 117 }, 118 { 119 name: "download_url_template", 120 apiURL: "{{ .Env.GORELEASER_TEST_GITEA_URLS_API }}", 121 }, 122 { 123 name: "download_url_template_invalid_value", 124 apiURL: "{{ .Env.GORELEASER_NOT_EXISTS }}", 125 wantErr: true, 126 }, 127 { 128 name: "download_url_template_invalid", 129 apiURL: "{{.dddddddddd", 130 wantErr: true, 131 }, 132 } 133 134 for _, tt := range tests { 135 ctx := testctx.NewWithCfg(config.Project{ 136 Env: []string{"GORELEASER_TEST_GITEA_URLS_API=https://gitea.com/api/v1"}, 137 GiteaURLs: config.GiteaURLs{ 138 API: tt.apiURL, 139 }, 140 }, testctx.GiteaTokenType) 141 142 err := Pipe{}.Run(ctx) 143 if tt.wantErr { 144 require.Error(t, err) 145 return 146 } 147 148 require.NoError(t, err) 149 require.Equal(t, "https://gitea.com", ctx.Config.GiteaURLs.Download) 150 } 151 }