diff options
Diffstat (limited to 'internal/config/serverconfig/config_test.go')
| -rw-r--r-- | internal/config/serverconfig/config_test.go | 52 |
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) + } + }) + } +} |
