diff --git a/config/config-missing-fields.yaml b/config/config-missing-fields.yaml new file mode 100644 index 0000000..fd3c3f6 --- /dev/null +++ b/config/config-missing-fields.yaml @@ -0,0 +1,5 @@ +app: + environment: "missingfield" + +db: + type: "typical" diff --git a/config/config-sample.yaml b/config/config-sample.yaml index 239a9a4..1d44dba 100644 --- a/config/config-sample.yaml +++ b/config/config-sample.yaml @@ -1,11 +1,11 @@ app: environment: "devel" - port: 8080 + port: 5151 db: - type: "type" - host: "host" + type: "aoeu" + host: "aeihn" port: 1234 user: USER password: PASSWORD - database: gogmagog + database: g2 diff --git a/config/config.go b/config/config.go index 578764a..7cbafad 100644 --- a/config/config.go +++ b/config/config.go @@ -29,16 +29,30 @@ type Conf struct { Db DBConfig } -// GetConf returns config values -func GetConf(filename string) *Conf { - +func createDefaultConf() *Conf { cnf := &Conf{ App: AppConfig{ Environment: "local", Port: "8080", }, + Db: DBConfig{ + Type: "postgres", + Host: "localhost", + Port: "5432", + User: "", + Password: "", + Database: "gogmagog", + }, } + return cnf +} + +// GetConf returns config values +func GetConf(filename string) *Conf { + + cnf := createDefaultConf() + vv := viper.New() vv.SetConfigName(filename) vv.SetConfigType("yaml") diff --git a/config/config_test.go b/config/config_test.go index 8b8c903..6d0b620 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -1,26 +1,44 @@ package config_test import ( - "testing" "github.com/stretchr/testify/assert" + "testing" "gitea.deepak.science/deepak/gogmagog/config" ) -func TestTrue(t *testing.T) { +func TestSample(t *testing.T) { assert := assert.New(t) conf := config.GetConf("config-sample") appConf := conf.App assert.Equal("devel", appConf.Environment) - assert.Equal("8080", appConf.Port) + assert.Equal("5151", appConf.Port) dbConf := conf.Db - assert.Equal("type", dbConf.Type) - assert.Equal("host", dbConf.Host) + assert.Equal("aoeu", dbConf.Type) + assert.Equal("aeihn", dbConf.Host) assert.Equal("1234", dbConf.Port) assert.Equal("USER", dbConf.User) assert.Equal("PASSWORD", dbConf.Password) + assert.Equal("g2", dbConf.Database) +} + +func TestMissing(t *testing.T) { + assert := assert.New(t) + + conf := config.GetConf("config-missing-fields") + + appConf := conf.App + assert.Equal("missingfield", appConf.Environment) + assert.Equal("8080", appConf.Port) + + dbConf := conf.Db + assert.Equal("typical", dbConf.Type) + assert.Equal("localhost", dbConf.Host) + assert.Equal("5432", dbConf.Port) + assert.Equal("", dbConf.User) + assert.Equal("", dbConf.Password) assert.Equal("gogmagog", dbConf.Database) }