github.com/marianogappa/goreleaser@v0.26.2-0.20170715090149-96acd0a9fc46/pipeline/defaults/defaults_test.go (about)

     1  package defaults
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/goreleaser/goreleaser/config"
     9  	"github.com/goreleaser/goreleaser/context"
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestDescription(t *testing.T) {
    14  	assert.NotEmpty(t, Pipe{}.Description())
    15  }
    16  
    17  func TestFillBasicData(t *testing.T) {
    18  	var assert = assert.New(t)
    19  	var ctx = &context.Context{
    20  		Config: config.Project{},
    21  	}
    22  
    23  	assert.NoError(Pipe{}.Run(ctx))
    24  	assert.Equal("goreleaser", ctx.Config.Release.GitHub.Owner)
    25  	assert.Equal("goreleaser", ctx.Config.Release.GitHub.Name)
    26  	assert.NotEmpty(ctx.Config.Builds)
    27  	assert.Equal("goreleaser", ctx.Config.Builds[0].Binary)
    28  	assert.Equal(".", ctx.Config.Builds[0].Main)
    29  	assert.Contains(ctx.Config.Builds[0].Goos, "darwin")
    30  	assert.Contains(ctx.Config.Builds[0].Goos, "linux")
    31  	assert.Contains(ctx.Config.Builds[0].Goarch, "386")
    32  	assert.Contains(ctx.Config.Builds[0].Goarch, "amd64")
    33  	assert.Equal("tar.gz", ctx.Config.Archive.Format)
    34  	assert.Contains(ctx.Config.Brew.Install, "bin.install \"goreleaser\"")
    35  	assert.NotEmpty(
    36  		ctx.Config.Archive.NameTemplate,
    37  		ctx.Config.Builds[0].Ldflags,
    38  		ctx.Config.Archive.Files,
    39  	)
    40  }
    41  
    42  func TestFillPartial(t *testing.T) {
    43  	var assert = assert.New(t)
    44  
    45  	var ctx = &context.Context{
    46  		Config: config.Project{
    47  			Release: config.Release{
    48  				GitHub: config.Repo{
    49  					Owner: "goreleaser",
    50  					Name:  "test",
    51  				},
    52  			},
    53  			Archive: config.Archive{
    54  				Files: []string{
    55  					"glob/*",
    56  				},
    57  			},
    58  			Builds: []config.Build{
    59  				{Binary: "testreleaser"},
    60  				{Goos: []string{"linux"}},
    61  				{
    62  					Binary: "another",
    63  					Ignore: []config.IgnoredBuild{
    64  						{Goos: "darwin", Goarch: "amd64"},
    65  					},
    66  				},
    67  			},
    68  		},
    69  	}
    70  	assert.NoError(Pipe{}.Run(ctx))
    71  	assert.Len(ctx.Config.Archive.Files, 1)
    72  	assert.Equal(`bin.install "testreleaser"`, ctx.Config.Brew.Install)
    73  }
    74  
    75  func TestFillSingleBuild(t *testing.T) {
    76  	var assert = assert.New(t)
    77  
    78  	var ctx = &context.Context{
    79  		Config: config.Project{
    80  			SingleBuild: config.Build{
    81  				Main: "testreleaser",
    82  			},
    83  		},
    84  	}
    85  	assert.NoError(Pipe{}.Run(ctx))
    86  	assert.Len(ctx.Config.Builds, 1)
    87  	assert.Equal(ctx.Config.Builds[0].Binary, "goreleaser")
    88  }
    89  
    90  func TestNotAGitRepo(t *testing.T) {
    91  	var assert = assert.New(t)
    92  	folder, err := ioutil.TempDir("", "goreleasertest")
    93  	assert.NoError(err)
    94  	previous, err := os.Getwd()
    95  	assert.NoError(err)
    96  	assert.NoError(os.Chdir(folder))
    97  	defer func() {
    98  		assert.NoError(os.Chdir(previous))
    99  	}()
   100  	var ctx = &context.Context{
   101  		Config: config.Project{},
   102  	}
   103  	assert.Error(Pipe{}.Run(ctx))
   104  }