aboutsummaryrefslogtreecommitdiff
path: root/internal/config/serverconfig/config_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/config/serverconfig/config_test.go')
-rw-r--r--internal/config/serverconfig/config_test.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/internal/config/serverconfig/config_test.go b/internal/config/serverconfig/config_test.go
index a4899205..3301bd36 100644
--- a/internal/config/serverconfig/config_test.go
+++ b/internal/config/serverconfig/config_test.go
@@ -8,6 +8,7 @@ import (
"context"
"regexp"
"testing"
+ "time"
"github.com/google/go-cmp/cmp"
"golang.org/x/pkgsite/internal/config"
@@ -145,3 +146,54 @@ func TestEnvAndApp(t *testing.T) {
}
}
}
+func TestInitPoolSettings(t *testing.T) {
+ ctx := context.Background()
+ for _, test := range []struct {
+ name string
+ envs map[string]string
+ wantOpen int
+ wantIdle int
+ wantLife time.Duration
+ }{
+ {
+ name: "overridden",
+ envs: map[string]string{
+ "GO_DISCOVERY_DATABASE_HOST": "localhost",
+ "GO_DISCOVERY_DATABASE_MAX_OPEN_CONNS": "42",
+ "GO_DISCOVERY_DATABASE_MAX_IDLE_CONNS": "13",
+ "GO_DISCOVERY_DATABASE_CONN_MAX_LIFETIME": "10m",
+ },
+ wantOpen: 42,
+ wantIdle: 13,
+ wantLife: 10 * time.Minute,
+ },
+ {
+ name: "defaults",
+ envs: map[string]string{
+ "GO_DISCOVERY_DATABASE_HOST": "localhost",
+ },
+ wantOpen: config.DefaultDBMaxOpenConns,
+ wantIdle: config.DefaultDBMaxIdleConns,
+ wantLife: config.DefaultDBConnMaxLifetime,
+ },
+ } {
+ t.Run(test.name, func(t *testing.T) {
+ for k, v := range test.envs {
+ t.Setenv(k, v)
+ }
+ cfg, err := Init(ctx)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if cfg.DBMaxOpenConns != test.wantOpen {
+ t.Errorf("DBMaxOpenConns: got %d, want %d", cfg.DBMaxOpenConns, test.wantOpen)
+ }
+ if cfg.DBMaxIdleConns != test.wantIdle {
+ t.Errorf("DBMaxIdleConns: got %d, want %d", cfg.DBMaxIdleConns, test.wantIdle)
+ }
+ if cfg.DBConnMaxLifetime != test.wantLife {
+ t.Errorf("DBConnMaxLifetime: got %s, want %s", cfg.DBConnMaxLifetime, test.wantLife)
+ }
+ })
+ }
+}