Skip to content

Commit 6f5e719

Browse files
committedFeb 24, 2025·
Handle pagination on empty list
closes #8
1 parent 41cc463 commit 6f5e719

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed
 

‎lib/scrivener/paginater/list.ex

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ defimpl Scrivener.Paginater, for: List do
2424
Enum.slice(entries, offset, page_size)
2525
end
2626

27+
defp total_pages(0, _page_size), do: 1
28+
2729
defp total_pages(total_entries, page_size) do
2830
ceiling(total_entries / page_size)
2931
end

‎test/scrivener_list_test.exs

+8
Original file line numberDiff line numberDiff line change
@@ -171,5 +171,13 @@ defmodule Scrivener.ListTest do
171171
assert page.total_pages == Float.ceil(length(@languages) / 200)
172172
assert page.total_entries == @total_entries
173173
end
174+
175+
test "can paginate empty list" do
176+
page = Scrivener.paginate([], page: 1, page_size: 10)
177+
178+
assert page.page_number == 1
179+
assert page.total_pages == 1
180+
assert page.total_entries == 0
181+
end
174182
end
175183
end

0 commit comments

Comments
 (0)
Please sign in to comment.