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