github.com/client9/goreleaser@v0.17.4-0.20170511023544-27e4b028926d/pipeline/fpm/fpm_test.go (about) 1 package fpm 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/goreleaser/goreleaser/config" 10 "github.com/goreleaser/goreleaser/context" 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestDescription(t *testing.T) { 15 assert.NotEmpty(t, Pipe{}.Description()) 16 } 17 18 func TestRunPipeNoFormats(t *testing.T) { 19 var assert = assert.New(t) 20 var ctx = &context.Context{ 21 Config: config.Project{}, 22 } 23 assert.NoError(Pipe{}.Run(ctx)) 24 } 25 26 func TestRunPipe(t *testing.T) { 27 var assert = assert.New(t) 28 folder, err := ioutil.TempDir("", "archivetest") 29 assert.NoError(err) 30 var dist = filepath.Join(folder, "dist") 31 assert.NoError(os.Mkdir(dist, 0755)) 32 assert.NoError(os.Mkdir(filepath.Join(dist, "mybin"), 0755)) 33 _, err = os.Create(filepath.Join(dist, "mybin", "mybin")) 34 assert.NoError(err) 35 var ctx = &context.Context{ 36 Archives: map[string]string{ 37 "linuxamd64": "mybin", 38 }, 39 Config: config.Project{ 40 Dist: dist, 41 Build: config.Build{ 42 Goarch: []string{ 43 "amd64", 44 "i386", 45 }, 46 Binary: "mybin", 47 }, 48 FPM: config.FPM{ 49 Formats: []string{"deb"}, 50 Dependencies: []string{"make"}, 51 Conflicts: []string{"git"}, 52 Description: "Some description", 53 License: "MIT", 54 Maintainer: "me@me", 55 Vendor: "asdf", 56 Homepage: "https://goreleaser.github.io", 57 }, 58 }, 59 } 60 assert.NoError(Pipe{}.Run(ctx)) 61 } 62 63 func TestNoFPMInPath(t *testing.T) { 64 var assert = assert.New(t) 65 var path = os.Getenv("PATH") 66 defer func() { 67 assert.NoError(os.Setenv("PATH", path)) 68 }() 69 assert.NoError(os.Setenv("PATH", "")) 70 var ctx = &context.Context{ 71 Config: config.Project{ 72 FPM: config.FPM{ 73 Formats: []string{"deb"}, 74 }, 75 }, 76 } 77 assert.EqualError(Pipe{}.Run(ctx), ErrNoFPM.Error()) 78 } 79 80 func TestCreateFileDoesntExist(t *testing.T) { 81 var assert = assert.New(t) 82 folder, err := ioutil.TempDir("", "archivetest") 83 assert.NoError(err) 84 var dist = filepath.Join(folder, "dist") 85 assert.NoError(os.Mkdir(dist, 0755)) 86 assert.NoError(os.Mkdir(filepath.Join(dist, "mybin"), 0755)) 87 var ctx = &context.Context{ 88 Archives: map[string]string{ 89 "linuxamd64": "mybin", 90 }, 91 Config: config.Project{ 92 Dist: dist, 93 Build: config.Build{ 94 Goarch: []string{ 95 "amd64", 96 "i386", 97 }, 98 Binary: "mybin", 99 }, 100 FPM: config.FPM{ 101 Formats: []string{"deb"}, 102 }, 103 }, 104 } 105 assert.Error(Pipe{}.Run(ctx)) 106 }