towerops/test/towerops_web/live/config_timeline_live_helpers_test.exs

58 lines
1.9 KiB
Elixir

defmodule ToweropsWeb.ConfigTimelineLiveHelpersTest do
use ExUnit.Case, async: true
alias ToweropsWeb.ConfigTimelineLive
describe "change_size_class/1" do
test "> 50 returns error styling" do
assert "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400" ==
ConfigTimelineLive.change_size_class(51)
assert "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400" ==
ConfigTimelineLive.change_size_class(1_000)
end
test "21..50 returns warning styling" do
assert "bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400" ==
ConfigTimelineLive.change_size_class(21)
assert "bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400" ==
ConfigTimelineLive.change_size_class(50)
end
test "<= 20 returns info styling" do
assert "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400" == ConfigTimelineLive.change_size_class(0)
assert "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400" ==
ConfigTimelineLive.change_size_class(20)
end
test "non-integer returns info styling" do
assert "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400" ==
ConfigTimelineLive.change_size_class(nil)
assert "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400" ==
ConfigTimelineLive.change_size_class("foo")
end
end
describe "timeline_event/1" do
test "serializes to ISO timestamp map" do
changed_at = ~U[2026-01-15 12:00:00Z]
event = %{
id: "evt-1",
changed_at: changed_at,
sections_changed: ["dhcp", "ospf"],
change_size: 42
}
assert %{
id: "evt-1",
t: "2026-01-15T12:00:00Z",
sections: ["dhcp", "ospf"],
size: 42
} == ConfigTimelineLive.timeline_event(event)
end
end
end