Skip to content

test(config): isolate tests from PG* env#43

Merged
mfreed merged 1 commit into
mainfrom
fix/config-test-env-isolation
May 24, 2026
Merged

test(config): isolate tests from PG* env#43
mfreed merged 1 commit into
mainfrom
fix/config-test-env-isolation

Conversation

@mfreed
Copy link
Copy Markdown
Member

@mfreed mfreed commented May 24, 2026

TestInit_SetsDefaults and TestConfig_ConnectionFields:

config.go intentionally binds PGHOST/PGPORT/PGUSER/PGDATABASE/PGPASSWORD via viper.BindEnv (the production-correct behavior). But these two tests assert default config values without isolating from the ambient shell environment, so they fail on any developer machine that has those vars exported -- a common setup for talking to a password-auth PostgreSQL like the demo container.

Add a small unsetPostgreSQLEnvVars(t) helper that unsets the five PG* vars for the test and restores their originals via t.Cleanup, and call it at the top of the two affected tests.

The production binding behavior is unchanged. CI behavior (no PG* env) is unchanged. The existing TestConfig_PostgreSQLEnvVars test (which deliberately sets PG* vars and asserts they flow into config) remains untouched.

Before: 2 failed when PGHOST/PGPORT/PGUSER/PGDATABASE/PGPASSWORD exported.
After: full config package green under both env conditions.

…Fields from PG* env

config.go intentionally binds PGHOST/PGPORT/PGUSER/PGDATABASE/PGPASSWORD via
viper.BindEnv (the production-correct behavior). But these two tests assert
default config values without isolating from the ambient shell environment, so
they fail on any developer machine that has those vars exported -- a common
setup for talking to a password-auth PostgreSQL like the demo container.

Add a small unsetPostgreSQLEnvVars(t) helper that unsets the five PG* vars for
the test and restores their originals via t.Cleanup, and call it at the top
of the two affected tests.

The production binding behavior is unchanged. CI behavior (no PG* env) is
unchanged. The existing TestConfig_PostgreSQLEnvVars test (which deliberately
sets PG* vars and asserts they flow into config) remains untouched.

Before: 2 failed when PGHOST/PGPORT/PGUSER/PGDATABASE/PGPASSWORD exported.
After:  full config package green under both env conditions.
@mfreed mfreed merged commit 54ba454 into main May 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant