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  }