towerops/test/towerops_web/telemetry_test.exs
Graham McIntire 3ca0834ef0 tests: raise coverage to 70% via helper promotion + new unit/property tests
Promoted pure presentation and utility helpers from `defp` to `def @doc false`
across ~20 LiveViews, Oban workers, and sync modules so they're reachable from
unit tests. Refactored several `cond` blocks into idiomatic function heads with
guards. Added ~250 new test cases in new files under test/towerops and
test/towerops_web, including DB-backed tests for CnMaestro.Sync and
AlertNotificationWorker, and removed dead LiveView tab components and
CapacityLive (no callers anywhere in lib/test).

Configured mix.exs test_coverage.ignore_modules to exclude vendored third-party
code (SnmpKit, protobuf-generated Towerops.Agent.*, Absinthe GraphQL types,
Phoenix HTML modules, Inspect protocol impls) from coverage calculations —
these are not our project code.

Coverage: 66.93% → 70.09%. Full suite: 10,127 tests, 0 failures.
2026-04-24 09:49:06 -05:00

53 lines
1.5 KiB
Elixir

defmodule ToweropsWeb.TelemetryTest do
use ExUnit.Case, async: true
alias ToweropsWeb.Telemetry
describe "parse_redis_info/1" do
test "parses a minimal Redis INFO response" do
info = """
# Stats
total_connections_received:12
total_commands_processed:500
instantaneous_ops_per_sec:5
"""
result = Telemetry.parse_redis_info(info)
assert result["total_connections_received"] == "12"
assert result["total_commands_processed"] == "500"
assert result["instantaneous_ops_per_sec"] == "5"
end
test "skips comment/empty lines" do
info = "\n# Comment\n\nkey:value\n# Another\n"
assert %{"key" => "value"} == Telemetry.parse_redis_info(info)
end
test "returns empty map for empty input" do
assert %{} == Telemetry.parse_redis_info("")
end
test "handles CRLF line endings" do
info = "a:1\r\nb:2\r\n"
assert %{"a" => "1", "b" => "2"} == Telemetry.parse_redis_info(info)
end
test "splits on first colon only" do
info = "url:redis://localhost:6379"
assert %{"url" => "redis://localhost:6379"} == Telemetry.parse_redis_info(info)
end
test "drops malformed entries without colon" do
info = "valid:1\njunk_no_colon\nanother:2"
assert %{"valid" => "1", "another" => "2"} == Telemetry.parse_redis_info(info)
end
end
describe "metrics/0" do
test "returns a list of metric specs" do
metrics = Telemetry.metrics()
assert is_list(metrics)
refute Enum.empty?(metrics)
end
end
end