github.com/tomsquest/goreleaser@v0.34.3-0.20171008022654-7d6ef4d338b3/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 r := Repo{Owner: "goreleaser", Name: "godownloader"} 16 assert.Equal(t, "goreleaser/godownloader", r.String(), "not equal") 17 } 18 19 func TestLoadReader(t *testing.T) { 20 var conf = ` 21 fpm: 22 homepage: http://goreleaser.github.io 23 ` 24 buf := strings.NewReader(conf) 25 prop, err := LoadReader(buf) 26 27 assert.NoError(t, err) 28 assert.Equal(t, "http://goreleaser.github.io", prop.FPM.Homepage, "yaml did not load correctly") 29 } 30 31 type errorReader struct{} 32 33 func (errorReader) Read(p []byte) (n int, err error) { 34 return 1, fmt.Errorf("error") 35 } 36 func TestLoadBadReader(t *testing.T) { 37 _, err := LoadReader(errorReader{}) 38 assert.Error(t, err) 39 } 40 41 func TestFile(t *testing.T) { 42 f, err := ioutil.TempFile(os.TempDir(), "config") 43 assert.NoError(t, err) 44 _, err = Load(filepath.Join(f.Name())) 45 assert.NoError(t, err) 46 } 47 48 func TestFileNotFound(t *testing.T) { 49 _, err := Load("/nope/no-way.yml") 50 assert.Error(t, err) 51 } 52 53 func TestInvalidFields(t *testing.T) { 54 _, err := Load("testdata/invalid_config.yml") 55 assert.EqualError(t, err, "unknown fields in the config file: invalid_root, archive.invalid_archive, archive.format_overrides[0].invalid_archive_fmtoverrides, brew.invalid_brew, brew.github.invalid_brew_github, builds[0].invalid_builds, builds[0].hooks.invalid_builds_hooks, builds[0].ignored_builds[0].invalid_builds_ignore, fpm.invalid_fpm, release.invalid_release, release.github.invalid_release_github, build.invalid_build, builds.hooks.invalid_build_hook, builds.ignored_builds[0].invalid_build_ignore, snapshot.invalid_snapshot, docker[0].invalid_docker") 56 } 57 58 func TestInvalidYaml(t *testing.T) { 59 _, err := Load("testdata/invalid.yml") 60 assert.EqualError(t, err, "yaml: line 1: did not find expected node content") 61 }