2025-01-08 18:14:15 +00:00
|
|
|
package database
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
)
|
|
|
|
|
|
2025-01-14 17:28:26 +00:00
|
|
|
func TestMustGetURIInvalidPort(t *testing.T) {
|
2025-01-08 18:14:15 +00:00
|
|
|
t.Setenv("DB_USER", "user")
|
|
|
|
|
t.Setenv("DB_PASS", "pass")
|
|
|
|
|
t.Setenv("DB_HOST", "host")
|
|
|
|
|
t.Setenv("DB_PORT", "port")
|
|
|
|
|
t.Setenv("DB_NAME", "name")
|
|
|
|
|
|
2025-01-14 17:28:26 +00:00
|
|
|
assert.Panics(t, func() { mustGetURI() })
|
2025-01-08 18:14:15 +00:00
|
|
|
}
|
|
|
|
|
|
2025-01-14 17:28:26 +00:00
|
|
|
func TestMustGetURINoSSL(t *testing.T) {
|
2025-01-08 18:14:15 +00:00
|
|
|
t.Setenv("DB_USER", "user")
|
|
|
|
|
t.Setenv("DB_PASS", "pass")
|
|
|
|
|
t.Setenv("DB_HOST", "host")
|
2025-01-14 17:28:26 +00:00
|
|
|
t.Setenv("DB_PORT", "5432")
|
2025-01-08 18:14:15 +00:00
|
|
|
t.Setenv("DB_NAME", "name")
|
|
|
|
|
t.Setenv("DB_NOSSL", "1")
|
|
|
|
|
|
2025-01-14 17:28:26 +00:00
|
|
|
connStr := mustGetURI()
|
|
|
|
|
assert.Equal(t, "postgres://user:pass@host:5432/name?sslmode=disable", connStr.String())
|
2025-01-08 18:14:15 +00:00
|
|
|
}
|
|
|
|
|
|
2025-01-14 17:28:26 +00:00
|
|
|
func TestMustGetURINoEnv(t *testing.T) {
|
2025-01-08 18:14:15 +00:00
|
|
|
t.Setenv("DB_USER", "")
|
|
|
|
|
t.Setenv("DB_PASS", "")
|
|
|
|
|
t.Setenv("DB_HOST", "")
|
|
|
|
|
t.Setenv("DB_PORT", "")
|
|
|
|
|
t.Setenv("DB_NAME", "")
|
|
|
|
|
|
2025-01-14 17:28:26 +00:00
|
|
|
assert.Panics(t, func() { mustGetURI() })
|
2025-01-08 18:14:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGetPoolConfig(t *testing.T) {
|
|
|
|
|
t.Setenv("DB_USER", "user")
|
|
|
|
|
t.Setenv("DB_PASS", "pass")
|
|
|
|
|
t.Setenv("DB_HOST", "host")
|
|
|
|
|
t.Setenv("DB_PORT", "5432")
|
|
|
|
|
t.Setenv("DB_NAME", "name")
|
|
|
|
|
|
|
|
|
|
config, err := getPoolConfig()
|
|
|
|
|
assert.Nil(t, err)
|
2025-01-14 17:28:26 +00:00
|
|
|
assert.Equal(t, config.ConnString(), mustGetURI().String())
|
2025-01-08 18:14:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestMustGetPoolConfig(t *testing.T) {
|
|
|
|
|
t.Setenv("DB_USER", "user")
|
|
|
|
|
t.Setenv("DB_PASS", "pass")
|
|
|
|
|
t.Setenv("DB_HOST", "host")
|
|
|
|
|
t.Setenv("DB_PORT", "5432")
|
|
|
|
|
t.Setenv("DB_NAME", "name")
|
|
|
|
|
|
|
|
|
|
config := mustGetPoolConfig()
|
2025-01-14 17:28:26 +00:00
|
|
|
assert.Equal(t, config.ConnString(), mustGetURI().String())
|
2025-01-08 18:14:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestMustGetPoolConfigInvalidPort(t *testing.T) {
|
|
|
|
|
t.Setenv("DB_USER", "user")
|
|
|
|
|
t.Setenv("DB_PASS", "pass")
|
|
|
|
|
t.Setenv("DB_HOST", "host")
|
|
|
|
|
t.Setenv("DB_PORT", "invalid_port")
|
|
|
|
|
t.Setenv("DB_NAME", "name")
|
|
|
|
|
|
|
|
|
|
assert.Panics(t, func() { mustGetPoolConfig() })
|
|
|
|
|
}
|