- 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
40 lines
1.2 KiB
Elixir
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
|