towerops/test/towerops_web/components/skeletons_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

46 lines
1.2 KiB
Elixir

defmodule ToweropsWeb.Components.SkeletonsTest do
use ExUnit.Case, async: true
import Phoenix.LiveViewTest
alias ToweropsWeb.Components.Skeletons
describe "skeleton_card/1" do
test "renders with default class" do
html = render_component(&Skeletons.skeleton_card/1, %{class: nil})
assert html =~ "animate-pulse"
assert html =~ "rounded-lg"
end
test "applies extra class" do
html = render_component(&Skeletons.skeleton_card/1, %{class: "my-extra"})
assert html =~ "my-extra"
end
end
describe "skeleton_table/1" do
test "renders default rows and cols" do
html = render_component(&Skeletons.skeleton_table/1, %{})
assert html =~ "animate-pulse"
end
test "honors explicit rows" do
html = render_component(&Skeletons.skeleton_table/1, %{rows: 3, cols: 2})
assert html =~ "animate-pulse"
end
end
describe "skeleton_stat/1" do
test "renders" do
html = render_component(&Skeletons.skeleton_stat/1, %{})
assert html =~ "animate-pulse"
end
end
describe "skeleton_dashboard/1" do
test "renders" do
html = render_component(&Skeletons.skeleton_dashboard/1, %{})
assert html =~ "animate-pulse"
end
end
end