mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-02-03 13:11:48 +02:00
61bead8989
* refactor: improve middleware Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: upload tests Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: twitter tests Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: source tests Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: snapshot tests Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * test: improved some tests Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: snapcraft skip Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip slack Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip sign Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip scoop Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip reddit Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip discord Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip publish Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip nfpm Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip milestone Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip custompublishers Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip checksums Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip changelog Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip brew Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip blob Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip before Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip artifactory Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip announce Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip defaults Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: cmds Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip docker Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * chore: todo Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: go.mod Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip release Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: remove old skip pipe errors Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip teams Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip brew Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix/test: skip smtp Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: lint issues Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip docker Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip brew and scoop Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip docker Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: skip http/artifactory Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * test: increase coverage Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * test: fix Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
160 lines
3.5 KiB
Go
160 lines
3.5 KiB
Go
package client
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/goreleaser/goreleaser/pkg/config"
|
|
"github.com/goreleaser/goreleaser/pkg/context"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestClientEmpty(t *testing.T) {
|
|
ctx := &context.Context{}
|
|
client, err := New(ctx)
|
|
require.Nil(t, client)
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestClientNewGitea(t *testing.T) {
|
|
ctx := &context.Context{
|
|
Config: config.Project{
|
|
GiteaURLs: config.GiteaURLs{
|
|
// TODO: use a mocked http server to cover version api
|
|
API: "https://gitea.com/api/v1",
|
|
Download: "https://gitea.com",
|
|
},
|
|
},
|
|
TokenType: context.TokenTypeGitea,
|
|
Token: "giteatoken",
|
|
}
|
|
client, err := New(ctx)
|
|
require.NoError(t, err)
|
|
_, ok := client.(*giteaClient)
|
|
require.True(t, ok)
|
|
}
|
|
|
|
func TestClientNewGiteaInvalidURL(t *testing.T) {
|
|
ctx := &context.Context{
|
|
Config: config.Project{
|
|
GiteaURLs: config.GiteaURLs{
|
|
API: "://gitea.com/api/v1",
|
|
},
|
|
},
|
|
TokenType: context.TokenTypeGitea,
|
|
Token: "giteatoken",
|
|
}
|
|
client, err := New(ctx)
|
|
require.Error(t, err)
|
|
require.Nil(t, client)
|
|
}
|
|
|
|
func TestClientNewGitLab(t *testing.T) {
|
|
ctx := &context.Context{
|
|
TokenType: context.TokenTypeGitLab,
|
|
Token: "gitlabtoken",
|
|
}
|
|
client, err := New(ctx)
|
|
require.NoError(t, err)
|
|
_, ok := client.(*gitlabClient)
|
|
require.True(t, ok)
|
|
}
|
|
|
|
func TestNewIfToken(t *testing.T) {
|
|
t.Run("valid", func(t *testing.T) {
|
|
ctx := &context.Context{
|
|
TokenType: context.TokenTypeGitLab,
|
|
Token: "gitlabtoken",
|
|
}
|
|
|
|
client, err := New(ctx)
|
|
require.NoError(t, err)
|
|
_, ok := client.(*gitlabClient)
|
|
require.True(t, ok)
|
|
|
|
ctx = &context.Context{
|
|
Config: config.Project{
|
|
GiteaURLs: config.GiteaURLs{
|
|
API: "https://gitea.com/api/v1",
|
|
},
|
|
},
|
|
TokenType: context.TokenTypeGitea,
|
|
Token: "giteatoken",
|
|
Env: map[string]string{"VAR": "token"},
|
|
}
|
|
|
|
client, err = NewIfToken(ctx, client, "{{ .Env.VAR }}")
|
|
require.NoError(t, err)
|
|
_, ok = client.(*giteaClient)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("empty", func(t *testing.T) {
|
|
ctx := &context.Context{
|
|
TokenType: context.TokenTypeGitLab,
|
|
Token: "gitlabtoken",
|
|
}
|
|
|
|
client, err := New(ctx)
|
|
require.NoError(t, err)
|
|
|
|
client, err = NewIfToken(ctx, client, "")
|
|
require.NoError(t, err)
|
|
_, ok := client.(*gitlabClient)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("invalid tmpl", func(t *testing.T) {
|
|
ctx := &context.Context{
|
|
TokenType: context.TokenTypeGitLab,
|
|
Token: "gitlabtoken",
|
|
}
|
|
|
|
_, err := NewIfToken(ctx, nil, "nope")
|
|
require.EqualError(t, err, `expected {{ .Env.VAR_NAME }} only (no plain-text or other interpolation)`)
|
|
})
|
|
}
|
|
|
|
func TestNewWithToken(t *testing.T) {
|
|
t.Run("gitlab", func(t *testing.T) {
|
|
ctx := &context.Context{
|
|
TokenType: context.TokenTypeGitLab,
|
|
Env: map[string]string{"TK": "token"},
|
|
}
|
|
|
|
cli, err := newWithToken(ctx, "{{ .Env.TK }}")
|
|
require.NoError(t, err)
|
|
|
|
_, ok := cli.(*gitlabClient)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("gitea", func(t *testing.T) {
|
|
ctx := &context.Context{
|
|
TokenType: context.TokenTypeGitea,
|
|
Env: map[string]string{"TK": "token"},
|
|
Config: config.Project{
|
|
GiteaURLs: config.GiteaURLs{
|
|
API: "https://gitea.com/api/v1",
|
|
},
|
|
},
|
|
}
|
|
|
|
cli, err := newWithToken(ctx, "{{ .Env.TK }}")
|
|
require.NoError(t, err)
|
|
|
|
_, ok := cli.(*giteaClient)
|
|
require.True(t, ok)
|
|
})
|
|
|
|
t.Run("invalid", func(t *testing.T) {
|
|
ctx := &context.Context{
|
|
TokenType: context.TokenType("nope"),
|
|
Env: map[string]string{"TK": "token"},
|
|
}
|
|
|
|
cli, err := newWithToken(ctx, "{{ .Env.TK }}")
|
|
require.NoError(t, err)
|
|
require.Nil(t, cli)
|
|
})
|
|
}
|