54 lines
1.8 KiB
Elixir
54 lines
1.8 KiB
Elixir
defmodule Kaffy.PaginationTest do
|
|
alias Kaffy.Pagination
|
|
use ExUnit.Case
|
|
|
|
# testing for get_pages(current_page, total_page)
|
|
|
|
test "test on emtpy pages" do
|
|
pages = Pagination.get_pages(0, 0)
|
|
assert pages == []
|
|
end
|
|
|
|
test "test on low get_pages" do
|
|
assert Pagination.get_pages(1, 1) == [1]
|
|
assert Pagination.get_pages(1, 2) == [1, 2]
|
|
assert Pagination.get_pages(1, 3) == [1, 2, 3]
|
|
assert Pagination.get_pages(1, 4) == [1, 2, 3, 4]
|
|
assert Pagination.get_pages(1, 5) == [1, 2, 3, 4, 5]
|
|
assert Pagination.get_pages(1, 6) == [1, 2, 3, "...", 6]
|
|
end
|
|
|
|
test "test on pagination 10" do
|
|
pages = Pagination.get_pages(5, 10)
|
|
assert pages == [1, 2, 3, 4, 5, 6, 7, "...", 10]
|
|
end
|
|
|
|
test "test on pagination 20" do
|
|
test_list_20 = [
|
|
{1, [1, 2, 3, "...", 20]},
|
|
{2, [1, 2, 3, 4, "...", 20]},
|
|
{3, [1, 2, 3, 4, 5, "...", 20]},
|
|
{4, [1, 2, 3, 4, 5, 6, "...", 20]},
|
|
{5, [1, 2, 3, 4, 5, 6, 7, "...", 20]},
|
|
{6, [1, "...", 4, 5, 6, 7, 8, "...", 20]},
|
|
{7, [1, "...", 5, 6, 7, 8, 9, "...", 20]},
|
|
{8, [1, "...", 6, 7, 8, 9, 10, "...", 20]},
|
|
{9, [1, "...", 7, 8, 9, 10, 11, "...", 20]},
|
|
{10, [1, "...", 8, 9, 10, 11, 12, "...", 20]},
|
|
{11, [1, "...", 9, 10, 11, 12, 13, "...", 20]},
|
|
{12, [1, "...", 10, 11, 12, 13, 14, "...", 20]},
|
|
{13, [1, "...", 11, 12, 13, 14, 15, "...", 20]},
|
|
{14, [1, "...", 12, 13, 14, 15, 16, "...", 20]},
|
|
{15, [1, "...", 13, 14, 15, 16, 17, "...", 20]},
|
|
{16, [1, "...", 14, 15, 16, 17, 18, 19, 20]},
|
|
{17, [1, "...", 15, 16, 17, 18, 19, 20]},
|
|
{18, [1, "...", 16, 17, 18, 19, 20]},
|
|
{19, [1, "...", 17, 18, 19, 20]},
|
|
{20, [1, "...", 18, 19, 20]}
|
|
]
|
|
|
|
Enum.map(test_list_20, fn {x, y} ->
|
|
assert Pagination.get_pages(x, 20) == y
|
|
end)
|
|
end
|
|
end
|