mirror of
https://github.com/idanoo/autobrr
synced 2025-07-22 16:29:12 +00:00

* feat(database): connect postgres via socket * feat(config): read env var secrets from file * docs: explain env var secrets * refactor: generate postgres dsn
67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
package database
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestPostgresDSN(t *testing.T) {
|
|
type args struct {
|
|
host string
|
|
port int
|
|
user string
|
|
pass string
|
|
database string
|
|
socket string
|
|
sslMode string
|
|
extraParams string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want string
|
|
}{
|
|
{
|
|
name: "default",
|
|
args: args{
|
|
host: "localhost",
|
|
port: 5432,
|
|
user: "postgres",
|
|
pass: "PASSWORD",
|
|
database: "postgres",
|
|
sslMode: "disable",
|
|
socket: "",
|
|
},
|
|
want: "postgres://postgres:PASSWORD@localhost:5432/postgres?sslmode=disable",
|
|
},
|
|
{
|
|
name: "default",
|
|
args: args{
|
|
host: "localhost",
|
|
port: 5432,
|
|
user: "postgres",
|
|
pass: "PASSWORD",
|
|
database: "postgres",
|
|
sslMode: "disable",
|
|
extraParams: "connect_timeout=10",
|
|
socket: "",
|
|
},
|
|
want: "postgres://postgres:PASSWORD@localhost:5432/postgres?sslmode=disable&connect_timeout=10",
|
|
},
|
|
{
|
|
name: "default",
|
|
args: args{
|
|
database: "postgres",
|
|
socket: "/path/to/socket",
|
|
},
|
|
want: "postgres://postgres?host=%2Fpath%2Fto%2Fsocket",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, _ := PostgresDSN(tt.args.host, tt.args.port, tt.args.user, tt.args.pass, tt.args.database, tt.args.socket, tt.args.sslMode, tt.args.extraParams)
|
|
assert.Equalf(t, tt.want, got, "PostgresDSN(%v, %v, %v, %v, %v, %v, %v, %v)", tt.args.host, tt.args.port, tt.args.user, tt.args.pass, tt.args.database, tt.args.socket, tt.args.sslMode, tt.args.extraParams)
|
|
})
|
|
}
|
|
}
|