CI: Bump lint stage to elixir-1.12
[akkoma] / test / pleroma / web / admin_api / controllers / report_controller_test.exs
index 57946e6bb6a65f1e9e7e14a1e8b398065fff6873..99cc7bbd0505cbfbaef312826e88e841e12db427 100644 (file)
@@ -1,14 +1,13 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
-  use Pleroma.Web.ConnCase
+  use Pleroma.Web.ConnCase, async: true
 
   import Pleroma.Factory
 
   alias Pleroma.Activity
-  alias Pleroma.Config
   alias Pleroma.ModerationLog
   alias Pleroma.Repo
   alias Pleroma.ReportNote
@@ -38,12 +37,21 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
           status_ids: [activity.id]
         })
 
+      conn
+      |> put_req_header("content-type", "application/json")
+      |> post("/api/pleroma/admin/reports/#{report_id}/notes", %{
+        content: "this is an admin note"
+      })
+
       response =
         conn
         |> get("/api/pleroma/admin/reports/#{report_id}")
         |> json_response_and_validate_schema(:ok)
 
       assert response["id"] == report_id
+
+      [notes] = response["notes"]
+      assert notes["content"] == "this is an admin note"
     end
 
     test "returns 404 when report id is invalid", %{conn: conn} do
@@ -114,13 +122,13 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
       })
       |> json_response_and_validate_schema(:no_content)
 
-      activity = Activity.get_by_id(id)
+      activity = Activity.get_by_id_with_user_actor(id)
       assert activity.data["state"] == "resolved"
 
       log_entry = Repo.one(ModerationLog)
 
       assert ModerationLog.get_log_entry_message(log_entry) ==
-               "@#{admin.nickname} updated report ##{id} with 'resolved' state"
+               "@#{admin.nickname} updated report ##{id} (on user @#{activity.user_actor.nickname}) with 'resolved' state"
     end
 
     test "closes report", %{conn: conn, id: id, admin: admin} do
@@ -133,13 +141,13 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
       })
       |> json_response_and_validate_schema(:no_content)
 
-      activity = Activity.get_by_id(id)
+      activity = Activity.get_by_id_with_user_actor(id)
       assert activity.data["state"] == "closed"
 
       log_entry = Repo.one(ModerationLog)
 
       assert ModerationLog.get_log_entry_message(log_entry) ==
-               "@#{admin.nickname} updated report ##{id} with 'closed' state"
+               "@#{admin.nickname} updated report ##{id} (on user @#{activity.user_actor.nickname}) with 'closed' state"
     end
 
     test "returns 400 when state is unknown", %{conn: conn, id: id} do
@@ -185,18 +193,18 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
       })
       |> json_response_and_validate_schema(:no_content)
 
-      activity = Activity.get_by_id(id)
-      second_activity = Activity.get_by_id(second_report_id)
+      activity = Activity.get_by_id_with_user_actor(id)
+      second_activity = Activity.get_by_id_with_user_actor(second_report_id)
       assert activity.data["state"] == "resolved"
       assert second_activity.data["state"] == "closed"
 
       [first_log_entry, second_log_entry] = Repo.all(ModerationLog)
 
       assert ModerationLog.get_log_entry_message(first_log_entry) ==
-               "@#{admin.nickname} updated report ##{id} with 'resolved' state"
+               "@#{admin.nickname} updated report ##{id} (on user @#{activity.user_actor.nickname}) with 'resolved' state"
 
       assert ModerationLog.get_log_entry_message(second_log_entry) ==
-               "@#{admin.nickname} updated report ##{second_report_id} with 'closed' state"
+               "@#{admin.nickname} updated report ##{second_report_id} (on user @#{second_activity.user_actor.nickname}) with 'closed' state"
     end
   end
 
@@ -295,7 +303,7 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
         |> get("/api/pleroma/admin/reports")
 
       assert json_response(conn, :forbidden) ==
-               %{"error" => "User is not an admin."}
+               %{"error" => "User is not a staff member."}
     end
 
     test "returns 403 when requested by anonymous" do