diff options
| author | Tusooa Zhu <tusooa@kazv.moe> | 2022-03-08 21:26:05 -0500 | 
|---|---|---|
| committer | Tusooa Zhu <tusooa@kazv.moe> | 2022-03-08 21:26:05 -0500 | 
| commit | eb1a29640f2d7c7d3daca0626b2beb623903c9cd (patch) | |
| tree | fb41f887f63c48c096eb548215b49a302317a265 /test | |
| parent | 11a1996bf5f283099fd9ecbb5c64e051ec46a5df (diff) | |
| download | pleroma-eb1a29640f2d7c7d3daca0626b2beb623903c9cd.tar.gz pleroma-eb1a29640f2d7c7d3daca0626b2beb623903c9cd.zip | |
Add pagination to AdminAPI.AnnouncementController.index
Diffstat (limited to 'test')
| -rw-r--r-- | test/pleroma/web/admin_api/controllers/announcement_controller_test.exs | 48 | 
1 files changed, 48 insertions, 0 deletions
| diff --git a/test/pleroma/web/admin_api/controllers/announcement_controller_test.exs b/test/pleroma/web/admin_api/controllers/announcement_controller_test.exs index c6b2163d0..56da1c6aa 100644 --- a/test/pleroma/web/admin_api/controllers/announcement_controller_test.exs +++ b/test/pleroma/web/admin_api/controllers/announcement_controller_test.exs @@ -30,6 +30,54 @@ defmodule Pleroma.Web.AdminAPI.AnnouncementControllerTest do        assert [%{"id" => ^id}] = response      end + +    test "it paginates announcements", %{conn: conn} do +      _announcements = Enum.map(0..20, fn _ -> insert(:announcement) end) + +      response = +        conn +        |> get("/api/v1/pleroma/admin/announcements") +        |> json_response_and_validate_schema(:ok) + +      assert length(response) == 20 +    end + +    test "it paginates announcements with custom params", %{conn: conn} do +      announcements = Enum.map(0..20, fn _ -> insert(:announcement) end) + +      response = +        conn +        |> get("/api/v1/pleroma/admin/announcements", limit: 5, offset: 7) +        |> json_response_and_validate_schema(:ok) + +      assert length(response) == 5 +      assert Enum.at(response, 0)["id"] == Enum.at(announcements, 7).id +    end + +    test "it returns empty list with out-of-bounds offset", %{conn: conn} do +      _announcements = Enum.map(0..20, fn _ -> insert(:announcement) end) + +      response = +        conn +        |> get("/api/v1/pleroma/admin/announcements", offset: 21) +        |> json_response_and_validate_schema(:ok) + +      assert [] = response +    end + +    test "it rejects invalid pagination params", %{conn: conn} do +      conn +      |> get("/api/v1/pleroma/admin/announcements", limit: 0) +      |> json_response_and_validate_schema(400) + +      conn +      |> get("/api/v1/pleroma/admin/announcements", limit: -1) +      |> json_response_and_validate_schema(400) + +      conn +      |> get("/api/v1/pleroma/admin/announcements", offset: -1) +      |> json_response_and_validate_schema(400) +    end    end    describe "GET /api/v1/pleroma/admin/announcements/:id" do | 
