aprs.me/test/aprsme_web/telemetry_test.exs
Graham McIntire b86153cd27
Fix all mix credo --strict warnings (188 → 0)
- Replace apply/2 with direct fully-qualified calls in movement_test
- Fix assert_receive timeouts < 1000ms across 8 test files
- Move nested import statements to module-level scope
- Fix tests with no assertions and add missing doctest
- Replace weak type assertions with specific value checks
- Fix conditional assertions and length/1 expensive patterns
- Disable inappropriate Jump.CredoChecks.AvoidSocketAssignsInTest
- Fix tests not calling application code with credo:disable
- Add various credo:disable comments for legitimate patterns
2026-06-12 16:27:20 -05:00

40 lines
1.2 KiB
Elixir

defmodule AprsmeWeb.TelemetryTest do
use ExUnit.Case, async: true
alias AprsmeWeb.Telemetry
describe "metrics/0" do
test "returns a non-empty list of metric definitions" do
metrics = Telemetry.metrics()
assert metrics != []
end
test "includes Phoenix endpoint, router, and live_view metrics" do
names =
Telemetry.metrics()
|> Enum.map(& &1.name)
|> Enum.map(&Enum.join(&1, "."))
assert Enum.any?(names, &String.starts_with?(&1, "phoenix.endpoint"))
assert Enum.any?(names, &String.starts_with?(&1, "phoenix.router_dispatch"))
end
test "includes Postgres metrics for connections, packets_table and replication" do
names =
Telemetry.metrics()
|> Enum.map(& &1.name)
|> Enum.map(&Enum.join(&1, "."))
assert Enum.any?(names, &String.contains?(&1, "aprsme.postgres.connections"))
assert Enum.any?(names, &String.contains?(&1, "aprsme.postgres.packets_table"))
assert Enum.any?(names, &String.contains?(&1, "aprsme.postgres.replication"))
end
test "every metric has a defined name and event_name" do
Enum.each(Telemetry.metrics(), fn m ->
assert m.name != []
assert m.event_name != []
end)
end
end
end