2017-12-08 22:30:02 -02:00
|
|
|
package dist
|
2017-07-04 22:53:50 -03:00
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"testing"
|
|
|
|
|
2024-05-26 15:02:57 -03:00
|
|
|
"github.com/goreleaser/goreleaser/v2/internal/testctx"
|
|
|
|
"github.com/goreleaser/goreleaser/v2/pkg/config"
|
2024-08-08 10:14:29 -03:00
|
|
|
"github.com/goreleaser/goreleaser/v2/pkg/context"
|
2020-10-06 09:48:04 -03:00
|
|
|
"github.com/stretchr/testify/require"
|
2017-07-04 22:53:50 -03:00
|
|
|
)
|
|
|
|
|
2024-08-08 10:14:29 -03:00
|
|
|
func TestDefault(t *testing.T) {
|
|
|
|
ctx := testctx.New()
|
|
|
|
require.NoError(t, Pipe{}.Default(ctx))
|
|
|
|
require.Equal(t, "dist", ctx.Config.Dist)
|
|
|
|
}
|
|
|
|
|
2017-07-04 22:53:50 -03:00
|
|
|
func TestDistDoesNotExist(t *testing.T) {
|
2021-04-25 14:20:49 -03:00
|
|
|
folder := t.TempDir()
|
|
|
|
dist := filepath.Join(folder, "dist")
|
2023-03-02 00:01:11 -03:00
|
|
|
require.NoError(t, Pipe{}.Run(testctx.NewWithCfg(config.Project{Dist: dist})))
|
2017-07-04 22:53:50 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPopulatedDistExists(t *testing.T) {
|
2021-04-25 14:20:49 -03:00
|
|
|
folder := t.TempDir()
|
|
|
|
dist := filepath.Join(folder, "dist")
|
|
|
|
require.NoError(t, os.Mkdir(dist, 0o755))
|
2021-04-25 11:34:40 -03:00
|
|
|
f, err := os.Create(filepath.Join(dist, "mybin"))
|
2020-10-06 09:48:04 -03:00
|
|
|
require.NoError(t, err)
|
2021-04-25 11:34:40 -03:00
|
|
|
require.NoError(t, f.Close())
|
2023-03-02 00:01:11 -03:00
|
|
|
ctx := testctx.NewWithCfg(config.Project{Dist: dist})
|
2020-10-06 09:48:04 -03:00
|
|
|
require.Error(t, Pipe{}.Run(ctx))
|
2024-08-08 10:14:29 -03:00
|
|
|
require.NoError(t, CleanPipe{}.Run(ctx))
|
2020-10-06 09:48:04 -03:00
|
|
|
require.NoError(t, Pipe{}.Run(ctx))
|
2017-07-04 22:53:50 -03:00
|
|
|
_, err = os.Stat(dist)
|
2020-10-06 09:48:04 -03:00
|
|
|
require.False(t, os.IsExist(err))
|
2017-07-04 22:53:50 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestEmptyDistExists(t *testing.T) {
|
2021-04-25 14:20:49 -03:00
|
|
|
folder := t.TempDir()
|
|
|
|
dist := filepath.Join(folder, "dist")
|
|
|
|
require.NoError(t, os.Mkdir(dist, 0o755))
|
2023-03-02 00:01:11 -03:00
|
|
|
ctx := testctx.NewWithCfg(config.Project{Dist: dist})
|
2020-10-06 09:48:04 -03:00
|
|
|
require.NoError(t, Pipe{}.Run(ctx))
|
2020-12-12 13:27:35 -03:00
|
|
|
_, err := os.Stat(dist)
|
2020-10-06 09:48:04 -03:00
|
|
|
require.False(t, os.IsNotExist(err))
|
2017-07-04 22:53:50 -03:00
|
|
|
}
|
|
|
|
|
2024-08-08 10:14:29 -03:00
|
|
|
func TestString(t *testing.T) {
|
2020-10-06 09:48:04 -03:00
|
|
|
require.NotEmpty(t, Pipe{}.String())
|
2024-08-08 10:14:29 -03:00
|
|
|
require.NotEmpty(t, CleanPipe{}.String())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCleanSkip(t *testing.T) {
|
|
|
|
t.Run("skip", func(t *testing.T) {
|
|
|
|
require.True(t, CleanPipe{}.Skip(testctx.New()))
|
|
|
|
})
|
|
|
|
t.Run("don't skip", func(t *testing.T) {
|
|
|
|
require.False(t, CleanPipe{}.Skip(testctx.New(func(ctx *context.Context) {
|
|
|
|
ctx.Clean = true
|
|
|
|
})))
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCleanSetDist(t *testing.T) {
|
|
|
|
ctx := testctx.New()
|
|
|
|
require.NoError(t, CleanPipe{}.Run(ctx))
|
|
|
|
require.Equal(t, "dist", ctx.Config.Dist)
|
2017-07-04 22:53:50 -03:00
|
|
|
}
|