mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 16:59:12 +00:00
feat(database): connect postgres via socket and read config from env _FILE secrets (#2061)
* feat(database): connect postgres via socket * feat(config): read env var secrets from file * docs: explain env var secrets * refactor: generate postgres dsn
This commit is contained in:
parent
24648e45f7
commit
fe4f385a22
9 changed files with 345 additions and 76 deletions
67
internal/database/postgres_test.go
Normal file
67
internal/database/postgres_test.go
Normal file
|
@ -0,0 +1,67 @@
|
|||
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)
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue