1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.PaginationTest do
11 alias Pleroma.Pagination
15 notes = insert_list(5, :note)
20 test "paginates by min_id", %{notes: notes} do
21 id = Enum.at(notes, 2).id |> Integer.to_string()
22 %{total: total, items: paginated} = Pagination.fetch_paginated(Object, %{"min_id" => id})
24 assert length(paginated) == 2
28 test "paginates by since_id", %{notes: notes} do
29 id = Enum.at(notes, 2).id |> Integer.to_string()
30 %{total: total, items: paginated} = Pagination.fetch_paginated(Object, %{"since_id" => id})
32 assert length(paginated) == 2
36 test "paginates by max_id", %{notes: notes} do
37 id = Enum.at(notes, 1).id |> Integer.to_string()
38 %{total: total, items: paginated} = Pagination.fetch_paginated(Object, %{"max_id" => id})
40 assert length(paginated) == 1
44 test "paginates by min_id & limit", %{notes: notes} do
45 id = Enum.at(notes, 2).id |> Integer.to_string()
47 %{total: total, items: paginated} =
48 Pagination.fetch_paginated(Object, %{"min_id" => id, "limit" => 1})
50 assert length(paginated) == 1
57 notes = insert_list(5, :note)
62 test "paginates by limit" do
63 %{total: total, items: paginated} =
64 Pagination.fetch_paginated(Object, %{"limit" => 2}, :offset)
66 assert length(paginated) == 2
70 test "paginates by limit & offset" do
71 %{total: total, items: paginated} =
72 Pagination.fetch_paginated(Object, %{"limit" => 2, "offset" => 4}, :offset)
74 assert length(paginated) == 1