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