adds error test for config
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good

This commit is contained in:
2020-12-28 16:53:39 -06:00
parent 8cc2de5c2a
commit 538e23708a
3 changed files with 25 additions and 12 deletions

View File

@@ -2,7 +2,6 @@ package config
import ( import (
"log" "log"
"os"
"github.com/spf13/viper" "github.com/spf13/viper"
) )
@@ -49,7 +48,7 @@ func createDefaultConf() *Conf {
} }
// GetConf returns config values // GetConf returns config values
func GetConf(filename string) *Conf { func GetConf(filename string) (*Conf, error) {
cnf := createDefaultConf() cnf := createDefaultConf()
@@ -57,18 +56,17 @@ func GetConf(filename string) *Conf {
vv.SetConfigName(filename) vv.SetConfigName(filename)
vv.SetConfigType("yaml") vv.SetConfigType("yaml")
vv.AddConfigPath(".") vv.AddConfigPath(".")
log.Printf("Initialising config with filename %s", filename)
err := vv.ReadInConfig() err := vv.ReadInConfig()
if err != nil { if err != nil {
log.Fatal("Could not load config file: \n", err) log.Print("Could not load config file: \n", err)
os.Exit(1) return nil, err
} }
err = vv.Unmarshal(&cnf) err = vv.Unmarshal(&cnf)
if err != nil { if err != nil {
log.Fatal("Could not read config file into struct: \n", err) log.Print("Could not read config file into struct: \n", err)
os.Exit(1) return nil, err
} }
return cnf return cnf, nil
} }

View File

@@ -10,7 +10,8 @@ import (
func TestSample(t *testing.T) { func TestSample(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)
conf := config.GetConf("config-sample") conf, err := config.GetConf("config-sample")
assert.Nil(err)
appConf := conf.App appConf := conf.App
assert.Equal("devel", appConf.Environment) assert.Equal("devel", appConf.Environment)
@@ -25,10 +26,11 @@ func TestSample(t *testing.T) {
assert.Equal("g2", dbConf.Database) assert.Equal("g2", dbConf.Database)
} }
func TestMissing(t *testing.T) { func TestDefault(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)
conf := config.GetConf("config-missing-fields") conf, err := config.GetConf("config-missing-fields")
assert.Nil(err)
appConf := conf.App appConf := conf.App
assert.Equal("missingfield", appConf.Environment) assert.Equal("missingfield", appConf.Environment)
@@ -42,3 +44,11 @@ func TestMissing(t *testing.T) {
assert.Equal("<password>", dbConf.Password) assert.Equal("<password>", dbConf.Password)
assert.Equal("gogmagog", dbConf.Database) assert.Equal("gogmagog", dbConf.Database)
} }
func TestMissingFile(t *testing.T) {
assert := assert.New(t)
conf, err := config.GetConf("non-existent")
assert.Nil(conf)
assert.NotNil(err)
}

View File

@@ -5,11 +5,16 @@ import (
"gitea.deepak.science/deepak/gogmagog/db" "gitea.deepak.science/deepak/gogmagog/db"
"gitea.deepak.science/deepak/gogmagog/models" "gitea.deepak.science/deepak/gogmagog/models"
"log" "log"
"os"
) )
func main() { func main() {
// Config // Config
conf := config.GetConf("config") conf, err := config.GetConf("config")
if err != nil {
log.Fatal("Could not get config", err)
os.Exit(1)
}
appConf := conf.App appConf := conf.App
port := appConf.Port port := appConf.Port