simplify database test

This commit is contained in:
Steffen Vogel 2021-10-19 14:45:45 +02:00
parent 7631e2a9b5
commit 9e45f39e31
2 changed files with 19 additions and 34 deletions

View file

@ -43,14 +43,17 @@ func InitDB(cfg *config.Config, clear bool) error {
if err != nil {
return err
}
host, err := cfg.String("db.host")
if err != nil {
return err
}
user, err := cfg.String("db.user")
if err != nil && !strings.Contains(err.Error(), "Required setting 'db.user' not set") {
return err
}
pass := ""
if user != "" {
pass, err = cfg.String("db.pass")
@ -58,6 +61,7 @@ func InitDB(cfg *config.Config, clear bool) error {
return err
}
}
sslmode, err := cfg.String("db.ssl")
if err != nil {
return err

View file

@ -48,44 +48,25 @@ func TestInitDB(t *testing.T) {
defaults := config.NewStatic(static)
env := config.NewEnvironment(mappings)
ownconfig := config.NewConfig([]config.Provider{defaults, env})
ownConfig := config.NewConfig([]config.Provider{defaults, env})
err = InitDB(ownconfig, true)
assert.Error(t, err)
dbname, err := configuration.GlobalConfig.String("db.name")
assert.NoError(t, err)
static["db.name"] = dbname
ownconfig = config.NewConfig([]config.Provider{defaults, env})
err = InitDB(ownconfig, true)
err = InitDB(ownConfig, true)
assert.Error(t, err)
dbhost, err := configuration.GlobalConfig.String("db.host")
assert.NoError(t, err)
static["db.host"] = dbhost
ownconfig = config.NewConfig([]config.Provider{defaults, env})
err = InitDB(ownconfig, true)
assert.Error(t, err)
dbOptions := []string{"db.name", "db.host", "db.user", "db.pass", "db.ssl"}
for _, opt := range dbOptions {
val, err := configuration.GlobalConfig.String(opt)
assert.NoError(t, err)
static[opt] = val
ownConfig = config.NewConfig([]config.Provider{defaults, env})
err = InitDB(ownConfig, true)
dbuser, err := configuration.GlobalConfig.String("db.user")
assert.NoError(t, err)
static["db.user"] = dbuser
ownconfig = config.NewConfig([]config.Provider{defaults, env})
err = InitDB(ownconfig, true)
assert.Error(t, err)
dbpass, err := configuration.GlobalConfig.String("db.pass")
assert.NoError(t, err)
static["db.pass"] = dbpass
ownconfig = config.NewConfig([]config.Provider{defaults, env})
err = InitDB(ownconfig, true)
assert.Error(t, err)
dbssl, err := configuration.GlobalConfig.String("db.ssl")
assert.NoError(t, err)
static["db.ssl"] = dbssl
ownconfig = config.NewConfig([]config.Provider{defaults, env})
err = InitDB(ownconfig, true)
assert.NoError(t, err)
if opt == "db.ssl" {
assert.NoError(t, err)
} else {
assert.Error(t, err)
}
}
// Verify that you can connect to the database
db := GetDB()