2.5 KiB
2.5 KiB
id: 20260531-085959-eliminate-test-only-env-vars
slug: eliminate-test-only-env-vars
title: Tests: eliminate test-only environment variables
status: closed
kind: task
priority: P2
labels: [test, env, cleanup]
created_at: 2026-05-31T08:59:59Z
updated_at: 2026-05-31T10:04:28Z
assignee: null
legacy_ticket: null
Background
The environment-variable policy now treats process environment as an undesirable ambient input. Tests currently still use several test-only or test-generated env names, such as INSOMNIA_TEST_*, and many tests mutate process environment directly with local guards.
The user decision is to eliminate test-only environment-variable surfaces rather than documenting them as supported configuration. A shared test utility crate may be added if it helps remove duplicated unsafe env mutation and replace test-only env channels with typed fixtures.
Requirements
- Remove test-only environment variables from active code/tests, including
INSOMNIA_TEST_*patterns. - Do not add new test-only user-facing env vars.
- Where tests need to exercise real supported env behavior, keep those mutations isolated behind a shared guard rather than ad-hoc per-test
set_var/remove_varcode. - Prefer typed fixtures, temporary files, explicit config structs, or dependency injection over process-global env channels.
- It is acceptable to introduce a small
test-supportcrate if it reduces duplication and keeps env mutation serialized/restored. - Update docs so test-only env vars are not listed as a supported surface.
Non-goals
- Removing tests that intentionally verify public path/env fallback behavior such as
INSOMNIA_HOME,XDG_CONFIG_HOME, orINSOMNIA_RUNTIME_DIR. - Removing credential env vars in this ticket; those belong with
manifest-profile-encrypted-secrets. - Removing
INSOMNIA_POD_COMMAND; that is tracked byremove-insomnia-pod-command-env.
Acceptance criteria
- No active code/tests generate or depend on
INSOMNIA_TEST_*env names. - Test-only env vars are absent from
docs/environment.md. - Any remaining test env mutation is for documented public env behavior or unavoidable external compatibility and is guarded/serialized/restored.
- If a
test-supportcrate is added, it is test-only/dev-only and does not become runtime dependency surface. - Relevant test suites pass, including tools/provider/manifest/pod tests that previously mutated env.
cargo fmt --check, relevantcargo test/cargo check,./tickets.sh doctor, andgit diff --checkpass.