mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 15:09:42 +00:00
Increase config test coverage
This commit is contained in:
@@ -1324,6 +1324,11 @@ func (c *Config) checkDatabaseConfig() error {
|
||||
m.Lock()
|
||||
defer m.Unlock()
|
||||
|
||||
if (c.Database == database.Config{}) {
|
||||
c.Database.Driver = "sqlite"
|
||||
c.Database.Database = database.DefaultSQLiteDatabase
|
||||
}
|
||||
|
||||
if !c.Database.Enabled {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/thrasher-corp/gocryptotrader/common"
|
||||
"github.com/thrasher-corp/gocryptotrader/connchecker"
|
||||
"github.com/thrasher-corp/gocryptotrader/currency"
|
||||
"github.com/thrasher-corp/gocryptotrader/database"
|
||||
"github.com/thrasher-corp/gocryptotrader/exchanges/asset"
|
||||
log "github.com/thrasher-corp/gocryptotrader/logger"
|
||||
"github.com/thrasher-corp/gocryptotrader/ntpclient"
|
||||
@@ -1538,6 +1540,24 @@ func TestSaveConfig(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCheckConnectionMonitorConfig(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var c Config
|
||||
c.ConnectionMonitor.CheckInterval = 0
|
||||
c.ConnectionMonitor.DNSList = nil
|
||||
c.ConnectionMonitor.PublicDomainList = nil
|
||||
c.CheckConnectionMonitorConfig()
|
||||
|
||||
if c.ConnectionMonitor.CheckInterval != connchecker.DefaultCheckInterval ||
|
||||
len(common.StringSliceDifference(
|
||||
c.ConnectionMonitor.DNSList, connchecker.DefaultDNSList)) != 0 ||
|
||||
len(common.StringSliceDifference(
|
||||
c.ConnectionMonitor.PublicDomainList, connchecker.DefaultDomainList)) != 0 {
|
||||
t.Error("unexpected values")
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetFilePath(t *testing.T) {
|
||||
expected := "blah.json"
|
||||
result, _ := GetFilePath("blah.json")
|
||||
@@ -1553,6 +1573,44 @@ func TestGetFilePath(t *testing.T) {
|
||||
testBypass = true
|
||||
}
|
||||
|
||||
func TestCheckRemoteControlConfig(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var c Config
|
||||
c.Webserver = &WebserverConfig{
|
||||
Enabled: true,
|
||||
AdminUsername: "satoshi",
|
||||
AdminPassword: "ultrasecurepassword",
|
||||
ListenAddress: ":9050",
|
||||
WebsocketConnectionLimit: 5,
|
||||
WebsocketMaxAuthFailures: 10,
|
||||
WebsocketAllowInsecureOrigin: true,
|
||||
}
|
||||
|
||||
c.CheckRemoteControlConfig()
|
||||
|
||||
if c.RemoteControl.Username != "satoshi" ||
|
||||
c.RemoteControl.Password != "ultrasecurepassword" ||
|
||||
!c.RemoteControl.GRPC.Enabled ||
|
||||
c.RemoteControl.GRPC.ListenAddress != "localhost:9052" ||
|
||||
!c.RemoteControl.GRPC.GRPCProxyEnabled ||
|
||||
c.RemoteControl.GRPC.GRPCProxyListenAddress != "localhost:9053" ||
|
||||
!c.RemoteControl.DeprecatedRPC.Enabled ||
|
||||
c.RemoteControl.DeprecatedRPC.ListenAddress != "localhost:9050" ||
|
||||
!c.RemoteControl.WebsocketRPC.Enabled ||
|
||||
c.RemoteControl.WebsocketRPC.ListenAddress != "localhost:9051" ||
|
||||
!c.RemoteControl.WebsocketRPC.AllowInsecureOrigin ||
|
||||
c.RemoteControl.WebsocketRPC.ConnectionLimit != 5 ||
|
||||
c.RemoteControl.WebsocketRPC.MaxAuthFailures != 10 {
|
||||
t.Error("unexpected results")
|
||||
}
|
||||
|
||||
// Now test to ensure the previous settings are flushed
|
||||
if c.Webserver != nil {
|
||||
t.Error("old webserver settings should be nil")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCheckConfig(t *testing.T) {
|
||||
var c Config
|
||||
err := c.LoadConfig(ConfigTestFile)
|
||||
@@ -1596,7 +1654,6 @@ func TestUpdateConfig(t *testing.T) {
|
||||
|
||||
func BenchmarkUpdateConfig(b *testing.B) {
|
||||
var c Config
|
||||
|
||||
err := c.LoadConfig(ConfigTestFile)
|
||||
if err != nil {
|
||||
b.Errorf("Unable to benchmark UpdateConfig(): %s", err)
|
||||
@@ -1609,16 +1666,34 @@ func BenchmarkUpdateConfig(b *testing.B) {
|
||||
}
|
||||
|
||||
func TestCheckLoggerConfig(t *testing.T) {
|
||||
c := GetConfig()
|
||||
err := c.LoadConfig(ConfigTestFile)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
var c Config
|
||||
c.Logging = log.Config{}
|
||||
err := c.CheckLoggerConfig()
|
||||
if err != nil {
|
||||
t.Errorf("Failed to create default logger. Error: %s", err)
|
||||
}
|
||||
|
||||
if !*c.Logging.Enabled {
|
||||
t.Error("unexpected result")
|
||||
}
|
||||
|
||||
c.Logging.LoggerFileConfig.FileName = ""
|
||||
c.Logging.LoggerFileConfig.Rotate = nil
|
||||
c.Logging.LoggerFileConfig.MaxSize = -1
|
||||
|
||||
err = c.CheckLoggerConfig()
|
||||
if err != nil {
|
||||
t.Errorf("Failed to create default logger reason: %v", err)
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if c.Logging.LoggerFileConfig.FileName != "log.txt" ||
|
||||
c.Logging.LoggerFileConfig.Rotate == nil ||
|
||||
c.Logging.LoggerFileConfig.MaxSize != 100 {
|
||||
t.Error("unexpected result")
|
||||
}
|
||||
|
||||
c.LoadConfig(ConfigTestFile)
|
||||
err = c.CheckLoggerConfig()
|
||||
if err != nil {
|
||||
@@ -1627,6 +1702,8 @@ func TestCheckLoggerConfig(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDisableNTPCheck(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
c := GetConfig()
|
||||
err := c.LoadConfig(ConfigTestFile)
|
||||
if err != nil {
|
||||
@@ -1657,6 +1734,33 @@ func TestDisableNTPCheck(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCheckDatabaseConfig(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var c Config
|
||||
if err := c.checkDatabaseConfig(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if c.Database.Driver != "sqlite" ||
|
||||
c.Database.Database != database.DefaultSQLiteDatabase ||
|
||||
c.Database.Enabled {
|
||||
t.Error("unexpected results")
|
||||
}
|
||||
|
||||
c.Database.Enabled = true
|
||||
c.Database.Driver = "mssqlisthebest"
|
||||
if err := c.checkDatabaseConfig(); err == nil {
|
||||
t.Error("unexpected result")
|
||||
}
|
||||
|
||||
c.Database.Driver = "sqlite"
|
||||
c.Database.Enabled = true
|
||||
if err := c.checkDatabaseConfig(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCheckNTPConfig(t *testing.T) {
|
||||
c := GetConfig()
|
||||
|
||||
|
||||
@@ -35,4 +35,7 @@ var (
|
||||
|
||||
// SupportedDrivers slice of supported database driver types
|
||||
SupportedDrivers = []string{"sqlite", "postgres"}
|
||||
|
||||
// DefaultSQLiteDatabase is the default sqlite database name to use
|
||||
DefaultSQLiteDatabase = "gocryptotrader.db"
|
||||
)
|
||||
|
||||
@@ -60,7 +60,16 @@ func (a *databaseManager) Start() (err error) {
|
||||
audit.Audit = auditSQLite.Audit()
|
||||
}
|
||||
dbConn.Connected = true
|
||||
log.Debugf(log.DatabaseMgr, "Database connection established to host: %v using %v driver\n", dbConn.Config.Host, dbConn.Config.Driver)
|
||||
|
||||
if Bot.Config.Database.Driver == "postgres" {
|
||||
log.Debugf(log.DatabaseMgr,
|
||||
"Database connection established to host: %s. Using postgres driver\n",
|
||||
dbConn.Config.Host)
|
||||
} else {
|
||||
log.Debugf(log.DatabaseMgr,
|
||||
"Database connection established to file database: %s. Using sqlite driver\n",
|
||||
dbConn.Config.Database)
|
||||
}
|
||||
|
||||
mLogger := mg.MLogger{}
|
||||
migrations := mg.Migrator{
|
||||
|
||||
Reference in New Issue
Block a user