prop/test/support
Graham McIntire 82bcaa5a54
Some checks failed
Build and Push / Build and Push Docker Image (push) Has been cancelled
refactor: idiomatic test sandbox setup (manual mode, single reset hook)
Replace the non-idiomatic :auto sandbox mode with :manual, eliminating
the root cause of stale data across test runs. The :auto mode let any
process auto-checkout and commit outside test transactions — Oban in
testing:inline already disables plugins/queues, so :auto was never
needed.

Changes:
- test_helper: Sandbox.mode(Repo, :manual); drop manual app boot (mix
  now starts the app idiomatically), drop --no-start alias, drop
  table-cleanup loop
- DataCase: single reset_test_state/0 consolidates GridCache.clear,
  ScoreCache.clear, score-file wipe, and default HTTP stubs; drop
  the :auto-restore on_exit hack; setup_sandbox now just start_owner
- ConnCase: delegates shared reset to DataCase, removes duplicate
  cache clears and stub installs
- config: pool Ecto.Adapters.SQL.Sandbox (idiomatic canonical form)

Note: GridCache/ScoreCache are globally-registered GenServers, so
the architecturally clean per-test start_supervised! approach
conflicts with async:true (parallel tests can't register the same
name). The centralized clear in reset_test_state is the practical
compromise — one place, documented, single call.
2026-08-04 17:47:49 -05:00
..
fixtures fix: prevent contacts_dedup_idx collisions in parallel async tests 2026-08-04 17:05:16 -05:00
conn_case.ex refactor: idiomatic test sandbox setup (manual mode, single reset hook) 2026-08-04 17:47:49 -05:00
data_case.ex refactor: idiomatic test sandbox setup (manual mode, single reset hook) 2026-08-04 17:47:49 -05:00