github.com/lordnynex/goreleaser@v0.17.2-0.20170508230939-767968070d68/pipeline/defaults/defaults_test.go (about)

     1  package defaults
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/lordnynex/goreleaser/config"
     9  	"github.com/lordnynex/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  	assert := assert.New(t)
    19  
    20  	var ctx = &context.Context{
    21  		Config: config.Project{},
    22  	}
    23  
    24  	assert.NoError(Pipe{}.Run(ctx))
    25  
    26  	assert.Equal("goreleaser", ctx.Config.Release.GitHub.Owner)
    27  	assert.Equal("goreleaser", ctx.Config.Release.GitHub.Name)
    28  	assert.Equal("goreleaser", ctx.Config.Build.Binary)
    29  	assert.Equal(".", ctx.Config.Build.Main)
    30  	assert.Equal("tar.gz", ctx.Config.Archive.Format)
    31  	assert.Contains(ctx.Config.Build.Goos, "darwin")
    32  	assert.Contains(ctx.Config.Build.Goos, "linux")
    33  	assert.Contains(ctx.Config.Build.Goarch, "386")
    34  	assert.Contains(ctx.Config.Build.Goarch, "amd64")
    35  	assert.Contains(ctx.Config.Brew.Install, "bin.install \"goreleaser\"")
    36  	assert.NotEmpty(
    37  		ctx.Config.Archive.Replacements,
    38  		ctx.Config.Archive.NameTemplate,
    39  		ctx.Config.Build.Ldflags,
    40  		ctx.Config.Archive.Files,
    41  	)
    42  }
    43  
    44  func TestFillPartial(t *testing.T) {
    45  	assert := assert.New(t)
    46  
    47  	var ctx = &context.Context{
    48  		Config: config.Project{
    49  			Release: config.Release{
    50  				GitHub: config.Repo{
    51  					Owner: "goreleaser",
    52  					Name:  "test",
    53  				},
    54  			},
    55  		},
    56  	}
    57  	assert.NoError(Pipe{}.Run(ctx))
    58  }
    59  
    60  func TestFilesFilled(t *testing.T) {
    61  	assert := assert.New(t)
    62  
    63  	var ctx = &context.Context{
    64  		Config: config.Project{
    65  			Archive: config.Archive{
    66  				Files: []string{
    67  					"README.md",
    68  				},
    69  			},
    70  		},
    71  	}
    72  
    73  	assert.NoError(Pipe{}.Run(ctx))
    74  	assert.Len(ctx.Config.Archive.Files, 1)
    75  }
    76  
    77  func TestAcceptFiles(t *testing.T) {
    78  	var files = []string{
    79  		"LICENSE.md",
    80  		"LIceNSE.txt",
    81  		"LICENSE",
    82  		"LICENCE.txt",
    83  		"LICEncE",
    84  		"README",
    85  		"READme.md",
    86  		"CHANGELOG.txt",
    87  		"ChanGELOG.md",
    88  	}
    89  
    90  	for _, file := range files {
    91  		t.Run(file, func(t *testing.T) {
    92  			assert.True(t, accept(file))
    93  		})
    94  	}
    95  }
    96  
    97  func TestNotAGitRepo(t *testing.T) {
    98  	var assert = assert.New(t)
    99  	folder, err := ioutil.TempDir("", "goreleasertest")
   100  	assert.NoError(err)
   101  	previous, err := os.Getwd()
   102  	assert.NoError(err)
   103  	assert.NoError(os.Chdir(folder))
   104  	defer func() {
   105  		assert.NoError(os.Chdir(previous))
   106  	}()
   107  	var ctx = &context.Context{
   108  		Config: config.Project{},
   109  	}
   110  	assert.Error(Pipe{}.Run(ctx))
   111  }