package database import ( "testing" "github.com/stretchr/testify/assert" ) func TestMustGetURIInvalidPort(t *testing.T) { 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") assert.Panics(t, func() { mustGetURI() }) } func TestMustGetURINoSSL(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") t.Setenv("DB_NOSSL", "1") connStr := mustGetURI() assert.Equal(t, "postgres://user:pass@host:5432/name?sslmode=disable", connStr.String()) } func TestMustGetURINoEnv(t *testing.T) { t.Setenv("DB_USER", "") t.Setenv("DB_PASS", "") t.Setenv("DB_HOST", "") t.Setenv("DB_PORT", "") t.Setenv("DB_NAME", "") assert.Panics(t, func() { mustGetURI() }) } 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) assert.Equal(t, config.ConnString(), mustGetURI().String()) } 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() assert.Equal(t, config.ConnString(), mustGetURI().String()) } 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() }) }