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