github.com/marianogappa/goreleaser@v0.26.2-0.20170715090149-96acd0a9fc46/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 TestRunPipeFormatBinary(t *testing.T) { 27 var assert = assert.New(t) 28 var ctx = &context.Context{ 29 Config: config.Project{ 30 FPM: config.FPM{ 31 Formats: []string{"deb"}, 32 }, 33 Archive: config.Archive{ 34 Format: "binary", 35 }, 36 }, 37 } 38 assert.NoError(Pipe{}.Run(ctx)) 39 } 40 41 func TestRunPipe(t *testing.T) { 42 var assert = assert.New(t) 43 folder, err := ioutil.TempDir("", "archivetest") 44 assert.NoError(err) 45 var dist = filepath.Join(folder, "dist") 46 assert.NoError(os.Mkdir(dist, 0755)) 47 assert.NoError(os.Mkdir(filepath.Join(dist, "mybin"), 0755)) 48 _, err = os.Create(filepath.Join(dist, "mybin", "mybin")) 49 assert.NoError(err) 50 var ctx = &context.Context{ 51 Folders: map[string]string{ 52 "linuxamd64": "mybin", 53 "linux386": "mybin", 54 "darwinamd64": "anotherbin", 55 }, 56 Config: config.Project{ 57 ProjectName: "mybin", 58 Dist: dist, 59 FPM: config.FPM{ 60 Formats: []string{"deb"}, 61 Dependencies: []string{"make"}, 62 Conflicts: []string{"git"}, 63 Description: "Some description", 64 License: "MIT", 65 Maintainer: "me@me", 66 Vendor: "asdf", 67 Homepage: "https://goreleaser.github.io", 68 }, 69 }, 70 } 71 assert.NoError(Pipe{}.Run(ctx)) 72 } 73 74 func TestNoFPMInPath(t *testing.T) { 75 var assert = assert.New(t) 76 var path = os.Getenv("PATH") 77 defer func() { 78 assert.NoError(os.Setenv("PATH", path)) 79 }() 80 assert.NoError(os.Setenv("PATH", "")) 81 var ctx = &context.Context{ 82 Config: config.Project{ 83 FPM: config.FPM{ 84 Formats: []string{"deb"}, 85 }, 86 }, 87 } 88 assert.EqualError(Pipe{}.Run(ctx), ErrNoFPM.Error()) 89 } 90 91 func TestCreateFileDoesntExist(t *testing.T) { 92 var assert = assert.New(t) 93 folder, err := ioutil.TempDir("", "archivetest") 94 assert.NoError(err) 95 var dist = filepath.Join(folder, "dist") 96 assert.NoError(os.Mkdir(dist, 0755)) 97 assert.NoError(os.Mkdir(filepath.Join(dist, "mybin"), 0755)) 98 var ctx = &context.Context{ 99 Folders: map[string]string{ 100 "linuxamd64": "mybin", 101 }, 102 Config: config.Project{ 103 Dist: dist, 104 FPM: config.FPM{ 105 Formats: []string{"deb"}, 106 }, 107 }, 108 } 109 assert.Error(Pipe{}.Run(ctx)) 110 } 111 112 func TestCreatePathDoesntExist(t *testing.T) { 113 var assert = assert.New(t) 114 var ctx = &context.Context{} 115 assert.Contains( 116 create(ctx, "tar.gz", "/nope/noooo", "windowsarm64").Error(), 117 "no such file", 118 ) 119 }