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  }