gitee.com/mirrors_opencollective/goreleaser@v0.45.0/pipeline/defaults/defaults_test.go (about)

     1  package defaults
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/goreleaser/goreleaser/config"
     7  	"github.com/goreleaser/goreleaser/context"
     8  	"github.com/goreleaser/goreleaser/internal/testlib"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestDescription(t *testing.T) {
    13  	assert.NotEmpty(t, Pipe{}.String())
    14  }
    15  
    16  func TestFillBasicData(t *testing.T) {
    17  	_, back := testlib.Mktmp(t)
    18  	defer back()
    19  	testlib.GitInit(t)
    20  	testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git")
    21  
    22  	var ctx = &context.Context{
    23  		Config: config.Project{},
    24  	}
    25  
    26  	assert.NoError(t, Pipe{}.Run(ctx))
    27  	assert.Equal(t, "goreleaser", ctx.Config.Release.GitHub.Owner)
    28  	assert.Equal(t, "goreleaser", ctx.Config.Release.GitHub.Name)
    29  	assert.NotEmpty(t, ctx.Config.Builds)
    30  	assert.Equal(t, "goreleaser", ctx.Config.Builds[0].Binary)
    31  	assert.Equal(t, ".", ctx.Config.Builds[0].Main)
    32  	assert.Contains(t, ctx.Config.Builds[0].Goos, "darwin")
    33  	assert.Contains(t, ctx.Config.Builds[0].Goos, "linux")
    34  	assert.Contains(t, ctx.Config.Builds[0].Goarch, "386")
    35  	assert.Contains(t, ctx.Config.Builds[0].Goarch, "amd64")
    36  	assert.Equal(t, "tar.gz", ctx.Config.Archive.Format)
    37  	assert.Contains(t, ctx.Config.Brew.Install, "bin.install \"goreleaser\"")
    38  	assert.Empty(t, ctx.Config.Dockers)
    39  	assert.NotEmpty(
    40  		t,
    41  		ctx.Config.Archive.NameTemplate,
    42  		ctx.Config.Builds[0].Ldflags,
    43  		ctx.Config.Archive.Files,
    44  		ctx.Config.Dist,
    45  	)
    46  }
    47  
    48  func TestFillPartial(t *testing.T) {
    49  	_, back := testlib.Mktmp(t)
    50  	defer back()
    51  	testlib.GitInit(t)
    52  	testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git")
    53  
    54  	var ctx = &context.Context{
    55  		Config: config.Project{
    56  			Dist: "disttt",
    57  			Release: config.Release{
    58  				GitHub: config.Repo{
    59  					Owner: "goreleaser",
    60  					Name:  "test",
    61  				},
    62  			},
    63  			Archive: config.Archive{
    64  				Files: []string{
    65  					"glob/*",
    66  				},
    67  			},
    68  			Builds: []config.Build{
    69  				{Binary: "testreleaser"},
    70  				{Goos: []string{"linux"}},
    71  				{
    72  					Binary: "another",
    73  					Ignore: []config.IgnoredBuild{
    74  						{Goos: "darwin", Goarch: "amd64"},
    75  					},
    76  				},
    77  			},
    78  			Dockers: []config.Docker{
    79  				{Image: "a/b"},
    80  			},
    81  		},
    82  	}
    83  	assert.NoError(t, Pipe{}.Run(ctx))
    84  	assert.Len(t, ctx.Config.Archive.Files, 1)
    85  	assert.Equal(t, `bin.install "testreleaser"`, ctx.Config.Brew.Install)
    86  	assert.NotEmpty(t, ctx.Config.Dockers[0].Binary)
    87  	assert.NotEmpty(t, ctx.Config.Dockers[0].Goos)
    88  	assert.NotEmpty(t, ctx.Config.Dockers[0].Goarch)
    89  	assert.NotEmpty(t, ctx.Config.Dockers[0].Dockerfile)
    90  	assert.Empty(t, ctx.Config.Dockers[0].Goarm)
    91  	assert.Equal(t, "disttt", ctx.Config.Dist)
    92  }