1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-02-03 13:11:48 +02:00
goreleaser/internal/client/client_test.go
Carlos Alexandro Becker 61bead8989
feat: improve output and pipe skipping (#2480)
* 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>
2021-09-18 10:21:29 -03:00

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)
})
}