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  }