diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/moderation_log_test.exs | 36 | ||||
| -rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 121 | 
2 files changed, 130 insertions, 27 deletions
| diff --git a/test/moderation_log_test.exs b/test/moderation_log_test.exs index c78708471..a39a00e02 100644 --- a/test/moderation_log_test.exs +++ b/test/moderation_log_test.exs @@ -30,8 +30,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == -               "@#{moderator.nickname} deleted user @#{subject1.nickname}" +      assert log.data["message"] == "@#{moderator.nickname} deleted user @#{subject1.nickname}"      end      test "logging user creation by moderator", %{ @@ -48,7 +47,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} created users: @#{subject1.nickname}, @#{subject2.nickname}"      end @@ -63,7 +62,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{admin.nickname} made @#{subject2.nickname} follow @#{subject1.nickname}"      end @@ -78,7 +77,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{admin.nickname} made @#{subject2.nickname} unfollow @#{subject1.nickname}"      end @@ -100,8 +99,7 @@ defmodule Pleroma.ModerationLogTest do        tags = ["foo", "bar"] |> Enum.join(", ") -      assert ModerationLog.get_log_entry_message(log) == -               "@#{admin.nickname} added tags: #{tags} to users: #{users}" +      assert log.data["message"] == "@#{admin.nickname} added tags: #{tags} to users: #{users}"      end      test "logging user untagged by admin", %{admin: admin, subject1: subject1, subject2: subject2} do @@ -122,7 +120,7 @@ defmodule Pleroma.ModerationLogTest do        tags = ["foo", "bar"] |> Enum.join(", ") -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{admin.nickname} removed tags: #{tags} from users: #{users}"      end @@ -137,8 +135,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == -               "@#{moderator.nickname} made @#{subject1.nickname} moderator" +      assert log.data["message"] == "@#{moderator.nickname} made @#{subject1.nickname} moderator"      end      test "logging user revoke by moderator", %{moderator: moderator, subject1: subject1} do @@ -152,7 +149,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} revoked moderator role from @#{subject1.nickname}"      end @@ -166,7 +163,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} followed relay: https://example.org/relay"      end @@ -180,7 +177,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} unfollowed relay: https://example.org/relay"      end @@ -202,7 +199,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} updated report ##{report.id} with 'resolved' state"      end @@ -224,7 +221,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} responded with 'look at this' to report ##{report.id}"      end @@ -242,7 +239,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} updated status ##{note.id}, set sensitive: 'true'"      end @@ -260,7 +257,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} updated status ##{note.id}, set visibility: 'private'"      end @@ -278,7 +275,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == +      assert log.data["message"] ==                 "@#{moderator.nickname} updated status ##{note.id}, set sensitive: 'true', visibility: 'private'"      end @@ -294,8 +291,7 @@ defmodule Pleroma.ModerationLogTest do        log = Repo.one(ModerationLog) -      assert ModerationLog.get_log_entry_message(log) == -               "@#{moderator.nickname} deleted status ##{note.id}" +      assert log.data["message"] == "@#{moderator.nickname} deleted status ##{note.id}"      end    end  end diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 00e64692a..b5c355e66 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -2257,8 +2257,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "GET /api/pleroma/admin/moderation_log" do      setup %{conn: conn} do        admin = insert(:user, info: %{is_admin: true}) +      moderator = insert(:user, info: %{is_moderator: true}) -      %{conn: assign(conn, :user, admin), admin: admin} +      %{conn: assign(conn, :user, admin), admin: admin, moderator: moderator}      end      test "returns the log", %{conn: conn, admin: admin} do @@ -2291,9 +2292,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        conn = get(conn, "/api/pleroma/admin/moderation_log")        response = json_response(conn, 200) -      [first_entry, second_entry] = response +      [first_entry, second_entry] = response["items"] -      assert response |> length() == 2 +      assert response["total"] == 2        assert first_entry["data"]["action"] == "relay_unfollow"        assert first_entry["message"] == @@ -2335,9 +2336,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        conn1 = get(conn, "/api/pleroma/admin/moderation_log?page_size=1&page=1")        response1 = json_response(conn1, 200) -      [first_entry] = response1 +      [first_entry] = response1["items"] -      assert response1 |> length() == 1 +      assert response1["total"] == 2 +      assert response1["items"] |> length() == 1        assert first_entry["data"]["action"] == "relay_unfollow"        assert first_entry["message"] == @@ -2346,14 +2348,119 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        conn2 = get(conn, "/api/pleroma/admin/moderation_log?page_size=1&page=2")        response2 = json_response(conn2, 200) -      [second_entry] = response2 +      [second_entry] = response2["items"] -      assert response2 |> length() == 1 +      assert response2["total"] == 2 +      assert response2["items"] |> length() == 1        assert second_entry["data"]["action"] == "relay_follow"        assert second_entry["message"] ==                 "@#{admin.nickname} followed relay: https://example.org/relay"      end + +    test "filters log by date", %{conn: conn, admin: admin} do +      first_date = "2017-08-15T15:47:06Z" +      second_date = "2017-08-20T15:47:06Z" + +      Repo.insert(%ModerationLog{ +        data: %{ +          actor: %{ +            "id" => admin.id, +            "nickname" => admin.nickname, +            "type" => "user" +          }, +          action: "relay_follow", +          target: "https://example.org/relay" +        }, +        inserted_at: NaiveDateTime.from_iso8601!(first_date) +      }) + +      Repo.insert(%ModerationLog{ +        data: %{ +          actor: %{ +            "id" => admin.id, +            "nickname" => admin.nickname, +            "type" => "user" +          }, +          action: "relay_unfollow", +          target: "https://example.org/relay" +        }, +        inserted_at: NaiveDateTime.from_iso8601!(second_date) +      }) + +      conn1 = +        get( +          conn, +          "/api/pleroma/admin/moderation_log?start_date=#{second_date}" +        ) + +      response1 = json_response(conn1, 200) +      [first_entry] = response1["items"] + +      assert response1["total"] == 1 +      assert first_entry["data"]["action"] == "relay_unfollow" + +      assert first_entry["message"] == +               "@#{admin.nickname} unfollowed relay: https://example.org/relay" +    end + +    test "returns log filtered by user", %{conn: conn, admin: admin, moderator: moderator} do +      Repo.insert(%ModerationLog{ +        data: %{ +          actor: %{ +            "id" => admin.id, +            "nickname" => admin.nickname, +            "type" => "user" +          }, +          action: "relay_follow", +          target: "https://example.org/relay" +        } +      }) + +      Repo.insert(%ModerationLog{ +        data: %{ +          actor: %{ +            "id" => moderator.id, +            "nickname" => moderator.nickname, +            "type" => "user" +          }, +          action: "relay_unfollow", +          target: "https://example.org/relay" +        } +      }) + +      conn1 = get(conn, "/api/pleroma/admin/moderation_log?user_id=#{moderator.id}") + +      response1 = json_response(conn1, 200) +      [first_entry] = response1["items"] + +      assert response1["total"] == 1 +      assert get_in(first_entry, ["data", "actor", "id"]) == moderator.id +    end + +    test "returns log filtered by search", %{conn: conn, moderator: moderator} do +      ModerationLog.insert_log(%{ +        actor: moderator, +        action: "relay_follow", +        target: "https://example.org/relay" +      }) + +      ModerationLog.insert_log(%{ +        actor: moderator, +        action: "relay_unfollow", +        target: "https://example.org/relay" +      }) + +      conn1 = get(conn, "/api/pleroma/admin/moderation_log?search=unfo") + +      response1 = json_response(conn1, 200) +      [first_entry] = response1["items"] + +      assert response1["total"] == 1 + +      assert get_in(first_entry, ["data", "message"]) == +               "@#{moderator.nickname} unfollowed relay: https://example.org/relay" +    end    end    describe "PATCH /users/:nickname/force_password_reset" do | 
