summaryrefslogtreecommitdiff
path: root/test/pleroma/web/pleroma_api/controllers/report_controller_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/pleroma/web/pleroma_api/controllers/report_controller_test.exs')
-rw-r--r--test/pleroma/web/pleroma_api/controllers/report_controller_test.exs80
1 files changed, 80 insertions, 0 deletions
diff --git a/test/pleroma/web/pleroma_api/controllers/report_controller_test.exs b/test/pleroma/web/pleroma_api/controllers/report_controller_test.exs
new file mode 100644
index 000000000..c507aeca0
--- /dev/null
+++ b/test/pleroma/web/pleroma_api/controllers/report_controller_test.exs
@@ -0,0 +1,80 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.PleromaAPI.ReportControllerTest do
+ use Pleroma.Web.ConnCase, async: true
+
+ import Pleroma.Factory
+
+ alias Pleroma.Web.CommonAPI
+
+ describe "GET /api/v0/pleroma/reports" do
+ test "returns list of own reports" do
+ %{conn: reporter_conn, user: reporter} = oauth_access(["read:reports"])
+ %{conn: reported_conn, user: reported} = oauth_access(["read:reports"])
+ activity = insert(:note_activity, user: reported)
+
+ {:ok, %{id: report_id}} =
+ CommonAPI.report(reporter, %{
+ account_id: reported.id,
+ comment: "You stole my sandwich!",
+ status_ids: [activity.id]
+ })
+
+ assert reported_response =
+ reported_conn
+ |> get("/api/v0/pleroma/reports")
+ |> json_response_and_validate_schema(:ok)
+
+ assert reported_response == %{"reports" => [], "total" => 0}
+
+ assert reporter_response =
+ reporter_conn
+ |> get("/api/v0/pleroma/reports")
+ |> json_response_and_validate_schema(:ok)
+
+ assert %{"reports" => [report], "total" => 1} = reporter_response
+ assert report["id"] == report_id
+ refute report["notes"]
+ end
+ end
+
+ describe "GET /api/v0/pleroma/reports/:id" do
+ test "returns report by its id" do
+ %{conn: reporter_conn, user: reporter} = oauth_access(["read:reports"])
+ %{conn: reported_conn, user: reported} = oauth_access(["read:reports"])
+ activity = insert(:note_activity, user: reported)
+
+ {:ok, %{id: report_id}} =
+ CommonAPI.report(reporter, %{
+ account_id: reported.id,
+ comment: "You stole my sandwich!",
+ status_ids: [activity.id]
+ })
+
+ assert reported_conn
+ |> get("/api/v0/pleroma/reports/#{report_id}")
+ |> json_response_and_validate_schema(:not_found)
+
+ assert response =
+ reporter_conn
+ |> get("/api/v0/pleroma/reports/#{report_id}")
+ |> json_response_and_validate_schema(:ok)
+
+ assert response["id"] == report_id
+ refute response["notes"]
+ end
+
+ test "returns 404 when report id is invalid" do
+ %{conn: conn, user: _user} = oauth_access(["read:reports"])
+
+ assert response =
+ conn
+ |> get("/api/v0/pleroma/reports/0")
+ |> json_response_and_validate_schema(:not_found)
+
+ assert response == %{"error" => "Record not found"}
+ end
+ end
+end