prop/test/microwaveprop_web/live_table_footer_test.exs
Graham McIntire e46da74472
Show windowed page list in live_table footer
Previously rendered only the current page button. Now renders 1…(current-2)..(current+1)
using just has_next_page, collapsing with an ellipsis past page 4.
2026-04-13 10:02:19 -05:00

35 lines
1.1 KiB
Elixir

defmodule MicrowavepropWeb.LiveTableFooterTest do
use ExUnit.Case, async: true
alias MicrowavepropWeb.LiveTableFooter
describe "page_items/2" do
test "page 1 with next page shows 1 and 2" do
assert LiveTableFooter.page_items(1, true) == [1, 2]
end
test "page 1 without next page shows only 1" do
assert LiveTableFooter.page_items(1, false) == [1]
end
test "page 3 with next page shows contiguous window without ellipsis" do
assert LiveTableFooter.page_items(3, true) == [1, 2, 3, 4]
end
test "page 4 with next page still contiguous (window_start == 2)" do
assert LiveTableFooter.page_items(4, true) == [1, 2, 3, 4, 5]
end
test "page 5 with next page collapses with ellipsis" do
assert LiveTableFooter.page_items(5, true) == [1, :ellipsis, 3, 4, 5, 6]
end
test "page 10 without next page omits trailing page" do
assert LiveTableFooter.page_items(10, false) == [1, :ellipsis, 8, 9, 10]
end
test "page 2 with next page shows 1, 2, 3" do
assert LiveTableFooter.page_items(2, true) == [1, 2, 3]
end
end
end