1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-02-09 13:36:56 +02:00

improved config package test coverage

This commit is contained in:
Carlos Alexandro Becker 2017-05-18 09:02:02 -03:00
parent 6ea93d173d
commit b9d644db55
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
2 changed files with 36 additions and 5 deletions

View File

@ -6,6 +6,8 @@ import (
"io"
"io/ioutil"
"os"
yaml "gopkg.in/yaml.v1"
)
@ -111,15 +113,14 @@ type Project struct {
// Load config file
func Load(file string) (config Project, err error) {
data, err := ioutil.ReadFile(file)
f, err := os.Open(file)
if err != nil {
return config, err
}
err = yaml.Unmarshal(data, &config)
return
}
return LoadReader(f)
}
// Load config via io.Reader
// LoadReader config via io.Reader
func LoadReader(fd io.Reader) (config Project, err error) {
data, err := ioutil.ReadAll(fd)
if err != nil {

View File

@ -1,9 +1,14 @@
package config
import (
"io/ioutil"
"os"
"path/filepath"
"strings"
"testing"
"fmt"
"github.com/stretchr/testify/assert"
)
@ -26,3 +31,28 @@ fpm:
assert.Nil(err)
assert.Equal("http://goreleaser.github.io", prop.FPM.Homepage, "yaml did not load correctly")
}
type errorReader struct{}
func (errorReader) Read(p []byte) (n int, err error) {
return 1, fmt.Errorf("error")
}
func TestLoadBadReader(t *testing.T) {
var assert = assert.New(t)
_, err := LoadReader(errorReader{})
assert.Error(err)
}
func TestFile(t *testing.T) {
var assert = assert.New(t)
f, err := ioutil.TempFile(os.TempDir(), "config")
assert.NoError(err)
_, err = Load(filepath.Join(f.Name()))
assert.NoError(err)
}
func TestFileNotFound(t *testing.T) {
var assert = assert.New(t)
_, err := Load("/nope/no-way.yml")
assert.Error(err)
}