github.com/szyn/goreleaser@v0.76.1-0.20180517112710-333da09a1297/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  }