github.skymusic.top/goreleaser/goreleaser@v0.92.0/pkg/config/config_test.go (about) 1 package config 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "os" 7 "path/filepath" 8 "strings" 9 "testing" 10 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestRepo(t *testing.T) { 15 assert.Equal( 16 t, 17 "goreleaser/godownloader", 18 Repo{Owner: "goreleaser", Name: "godownloader"}.String(), 19 ) 20 } 21 22 func TestEmptyRepoNameAndOwner(t *testing.T) { 23 assert.Empty(t, Repo{}.String()) 24 } 25 26 func TestLoadReader(t *testing.T) { 27 var conf = ` 28 nfpm: 29 homepage: http://goreleaser.github.io 30 ` 31 buf := strings.NewReader(conf) 32 prop, err := LoadReader(buf) 33 34 assert.NoError(t, err) 35 assert.Equal(t, "http://goreleaser.github.io", prop.NFPM.Homepage, "yaml did not load correctly") 36 } 37 38 type errorReader struct{} 39 40 func (errorReader) Read(p []byte) (n int, err error) { 41 return 1, fmt.Errorf("error") 42 } 43 func TestLoadBadReader(t *testing.T) { 44 _, err := LoadReader(errorReader{}) 45 assert.Error(t, err) 46 } 47 48 func TestFile(t *testing.T) { 49 f, err := ioutil.TempFile(os.TempDir(), "config") 50 assert.NoError(t, err) 51 _, err = Load(filepath.Join(f.Name())) 52 assert.NoError(t, err) 53 } 54 55 func TestFileNotFound(t *testing.T) { 56 _, err := Load("/nope/no-way.yml") 57 assert.Error(t, err) 58 } 59 60 func TestInvalidFields(t *testing.T) { 61 _, err := Load("testdata/invalid_config.yml") 62 assert.EqualError(t, err, "yaml: unmarshal errors:\n line 2: field invalid_yaml not found in type config.Build") 63 } 64 65 func TestInvalidYaml(t *testing.T) { 66 _, err := Load("testdata/invalid.yml") 67 assert.EqualError(t, err, "yaml: line 1: did not find expected node content") 68 } 69 70 func TestConfigWithAnchors(t *testing.T) { 71 _, err := Load("testdata/anchor.yaml") 72 assert.NoError(t, err) 73 }