moneygo/internal/config/config_test.go

93 lines
2.7 KiB
Go

package config_test
import (
"github.com/aclindsa/moneygo/internal/config"
"testing"
)
func TestSqliteHTTPSConfig(t *testing.T) {
cfg, err := config.ReadConfig("./testdata/sqlite_https_config.ini")
if err != nil {
t.Fatalf("Unexpected error parsing config: %s\n", err)
}
if cfg.MoneyGo.Fcgi {
t.Errorf("MoneyGo.Fcgi unexpectedly true")
}
if cfg.MoneyGo.Port != 8443 {
t.Errorf("MoneyGo.Port %d instead of 8443", cfg.MoneyGo.Port)
}
if cfg.MoneyGo.Basedir != "src/github.com/aclindsa/moneygo/" {
t.Errorf("MoneyGo.Basedir not correct")
}
if cfg.MoneyGo.DBType != config.SQLite {
t.Errorf("MoneyGo.DBType not config.SQLite")
}
if cfg.MoneyGo.DSN != "file:moneygo.sqlite?cache=shared&mode=rwc" {
t.Errorf("MoneyGo.DSN not correct")
}
if cfg.Https.CertFile != "./cert.pem" {
t.Errorf("Https.CertFile '%s', not ./cert.pem", cfg.Https.CertFile)
}
if cfg.Https.KeyFile != "./key.pem" {
t.Errorf("Https.KeyFile '%s', not ./key.pem", cfg.Https.KeyFile)
}
if cfg.Https.GenerateCerts {
t.Errorf("Https.GenerateCerts not false")
}
if cfg.Https.GenerateCertsHosts != "localhost,127.0.0.1" {
t.Errorf("Https.GenerateCertsHosts '%s', not localhost", cfg.Https.GenerateCertsHosts)
}
}
func TestPostgresFcgiConfig(t *testing.T) {
cfg, err := config.ReadConfig("./testdata/postgres_fcgi_config.ini")
if err != nil {
t.Fatalf("Unexpected error parsing config: %s\n", err)
}
if !cfg.MoneyGo.Fcgi {
t.Errorf("MoneyGo.Fcgi unexpectedly false")
}
if cfg.MoneyGo.Port != 9001 {
t.Errorf("MoneyGo.Port %d instead of 9001", cfg.MoneyGo.Port)
}
if cfg.MoneyGo.Basedir != "src/github.com/aclindsa/moneygo/" {
t.Errorf("MoneyGo.Basedir not correct")
}
if cfg.MoneyGo.DBType != config.Postgres {
t.Errorf("MoneyGo.DBType not config.Postgres")
}
if cfg.MoneyGo.DSN != "postgres://moneygo_test@localhost/moneygo_test?sslmode=disable" {
t.Errorf("MoneyGo.DSN not correct")
}
}
func TestGenerateCertsConfig(t *testing.T) {
cfg, err := config.ReadConfig("./testdata/generate_certs_config.ini")
if err != nil {
t.Fatalf("Unexpected error parsing config: %s\n", err)
}
if cfg.Https.CertFile != "./local_cert.pem" {
t.Errorf("Https.CertFile '%s', not ./local_cert.pem", cfg.Https.CertFile)
}
if cfg.Https.KeyFile != "./local_key.pem" {
t.Errorf("Https.KeyFile '%s', not ./local_key.pem", cfg.Https.KeyFile)
}
if !cfg.Https.GenerateCerts {
t.Errorf("Https.GenerateCerts not true")
}
if cfg.Https.GenerateCertsHosts != "example.com" {
t.Errorf("Https.GenerateCertsHosts '%s', not example.com", cfg.Https.GenerateCertsHosts)
}
}
func TestNonexistentConfig(t *testing.T) {
cfg, err := config.ReadConfig("./testdata/nonexistent_config.ini")
if err == nil || cfg != nil {
t.Fatalf("Expected error parsing nonexistent config")
}
}