(Feat): Initial Commit
This commit is contained in:
68
internal/config/db_config_test.go
Normal file
68
internal/config/db_config_test.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package config_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"allaboutapps.dev/aw/go-starter/internal/config"
|
||||
)
|
||||
|
||||
// via https://github.com/allaboutapps/integresql/blob/master/pkg/manager/database_config_test.go
|
||||
func TestDatabaseConnectionString(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
config config.Database
|
||||
want string
|
||||
}{
|
||||
{
|
||||
name: "Simple",
|
||||
config: config.Database{
|
||||
Host: "localhost",
|
||||
Port: 5432,
|
||||
Username: "simple",
|
||||
Password: "database_config",
|
||||
Database: "simple_database_config",
|
||||
},
|
||||
want: "host=localhost port=5432 user=simple password=database_config dbname=simple_database_config sslmode=disable",
|
||||
},
|
||||
{
|
||||
name: "SSLMode",
|
||||
config: config.Database{
|
||||
Host: "localhost",
|
||||
Port: 5432,
|
||||
Username: "simple",
|
||||
Password: "database_config",
|
||||
Database: "simple_database_config",
|
||||
AdditionalParams: map[string]string{
|
||||
"sslmode": "prefer",
|
||||
},
|
||||
},
|
||||
want: "host=localhost port=5432 user=simple password=database_config dbname=simple_database_config sslmode=prefer",
|
||||
},
|
||||
{
|
||||
name: "Complex",
|
||||
config: config.Database{
|
||||
Host: "localhost",
|
||||
Port: 5432,
|
||||
Username: "simple",
|
||||
Password: "database_config",
|
||||
Database: "simple_database_config",
|
||||
AdditionalParams: map[string]string{
|
||||
"connect_timeout": "10",
|
||||
"sslmode": "verify-full",
|
||||
"sslcert": "/app/certs/pg.pem",
|
||||
"sslkey": "/app/certs/pg.key",
|
||||
"sslrootcert": "/app/certs/pg_root.pem",
|
||||
},
|
||||
},
|
||||
want: "host=localhost port=5432 user=simple password=database_config dbname=simple_database_config connect_timeout=10 sslcert=/app/certs/pg.pem sslkey=/app/certs/pg.key sslmode=verify-full sslrootcert=/app/certs/pg_root.pem",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := tt.config.ConnectionString(); got != tt.want {
|
||||
t.Errorf("invalid connection string, got %q, want %q", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user