Current section
Files
Jump to
Current section
Files
test/kerosene_test.exs
defmodule KeroseneTest do
use ExUnit.Case
alias Kerosene.Repo
alias Kerosene.Product
setup do
:ok = Ecto.Adapters.SQL.Sandbox.checkout(Kerosene.Repo)
end
defp create_products do
for _ <- 1..10 do
%Product { name: "Product 1", price: 100.00 }
|> Repo.insert!
end
end
test "returns set per_page" do
create_products
{_items, kerosene} = Product
|> Repo.paginate(per_page: 5)
assert kerosene.per_page == 5
end
test "have total pages based on per_page" do
create_products
{_items, kerosene} = Product
|> Repo.paginate(per_page: 5)
assert kerosene.total_pages == 2
end
test "uses default config" do
create_products
{_items, kerosene} = Product
|> Repo.paginate
assert kerosene.total_pages == 1
assert kerosene.page == 1
end
test "convert params to keyword list" do
params = %{"page" => 10, "per_page" => 100}
keyword_params = [page: 10, per_page: 100]
assert Kerosene.to_keyword_list(params) == keyword_params
end
test "work out total pages" do
row_count = 100
per_page = 10
total_pages = 10
assert Kerosene.get_total_pages(row_count, per_page) == total_pages
end
test "return integer from binary" do
assert Kerosene.to_integer("100") == 100
assert Kerosene.to_integer(10) == 10
assert Kerosene.to_integer(nil) == 1
end
end