prop/test/test_helper.exs
Graham McIntire 680ffa8cf2
test: silence Postgrex sandbox disconnect noise
When a test process exits while still owning a sandboxed Postgrex
connection, Postgrex.Protocol logs `[error] ... disconnected:
DBConnection.ConnectionError client #PID<...> exited`. It's benign
sandbox cleanup but at :error level it bypasses `capture_log: true`
(which only captures the test process's logs) and clutters every
test run.

Pin Postgrex.Protocol + DBConnection.Connection to :critical so the
noise drops without masking genuine DB error reporting (we never log
at :critical from those modules).
2026-05-08 10:43:51 -05:00

19 lines
802 B
Elixir

alias Ecto.Adapters.SQL.Sandbox
ExUnit.start(capture_log: true)
Sandbox.mode(Microwaveprop.Repo, :manual)
Sandbox.mode(Microwaveprop.AprsRepo, :manual)
# Silence sandbox-cleanup disconnect noise. When a test process exits
# while still owning a Postgrex connection, the protocol logs an
# `[error] Postgrex.Protocol ... disconnected: ... client #PID<...>
# exited`. It's benign — the connection is being torn down on purpose
# — but at :error level it bypasses `capture_log: true` (which only
# captures logs from the test process). Pinning these modules to
# :critical drops the noise without affecting real DB error logging.
Logger.put_module_level(
[Postgrex.Protocol, DBConnection.Connection],
:critical
)
Mox.defmock(Microwaveprop.Valkey.MockAdapter, for: Microwaveprop.Valkey.Adapter)