diff options
| author | Egor Kislitsyn <egor@kislitsyn.com> | 2019-09-30 17:04:03 +0700 | 
|---|---|---|
| committer | Egor Kislitsyn <egor@kislitsyn.com> | 2019-09-30 17:44:10 +0700 | 
| commit | b7f27a4f584e54b13d0b7c1b288ad3e7bffcf95a (patch) | |
| tree | 6c2c2f3165a5a5232599a65449d249aab44c66e2 /test/web | |
| parent | 90537f398160eddfb8033c1cdfe1acc21ee63c4a (diff) | |
| download | pleroma-b7f27a4f584e54b13d0b7c1b288ad3e7bffcf95a.tar.gz pleroma-b7f27a4f584e54b13d0b7c1b288ad3e7bffcf95a.zip  | |
Extract report actions from `MastodonAPIController` to `ReportController`
Update MastodonAPI.ReportView
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/mastodon_api/controllers/report_controller_test.exs | 88 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 79 | 
2 files changed, 88 insertions, 79 deletions
diff --git a/test/web/mastodon_api/controllers/report_controller_test.exs b/test/web/mastodon_api/controllers/report_controller_test.exs new file mode 100644 index 000000000..fcece40fb --- /dev/null +++ b/test/web/mastodon_api/controllers/report_controller_test.exs @@ -0,0 +1,88 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do +  use Pleroma.Web.ConnCase + +  alias Pleroma.Web.CommonAPI + +  import Pleroma.Factory + +  setup do +    reporter = insert(:user) +    target_user = insert(:user) + +    {:ok, activity} = CommonAPI.post(target_user, %{"status" => "foobar"}) + +    [reporter: reporter, target_user: target_user, activity: activity] +  end + +  test "submit a basic report", %{conn: conn, reporter: reporter, target_user: target_user} do +    assert %{"action_taken" => false, "id" => _} = +             conn +             |> assign(:user, reporter) +             |> post("/api/v1/reports", %{"account_id" => target_user.id}) +             |> json_response(200) +  end + +  test "submit a report with statuses and comment", %{ +    conn: conn, +    reporter: reporter, +    target_user: target_user, +    activity: activity +  } do +    assert %{"action_taken" => false, "id" => _} = +             conn +             |> assign(:user, reporter) +             |> post("/api/v1/reports", %{ +               "account_id" => target_user.id, +               "status_ids" => [activity.id], +               "comment" => "bad status!", +               "forward" => "false" +             }) +             |> json_response(200) +  end + +  test "account_id is required", %{ +    conn: conn, +    reporter: reporter, +    activity: activity +  } do +    assert %{"error" => "Valid `account_id` required"} = +             conn +             |> assign(:user, reporter) +             |> post("/api/v1/reports", %{"status_ids" => [activity.id]}) +             |> json_response(400) +  end + +  test "comment must be up to the size specified in the config", %{ +    conn: conn, +    reporter: reporter, +    target_user: target_user +  } do +    max_size = Pleroma.Config.get([:instance, :max_report_comment_size], 1000) +    comment = String.pad_trailing("a", max_size + 1, "a") + +    error = %{"error" => "Comment must be up to #{max_size} characters"} + +    assert ^error = +             conn +             |> assign(:user, reporter) +             |> post("/api/v1/reports", %{"account_id" => target_user.id, "comment" => comment}) +             |> json_response(400) +  end + +  test "returns error when account is not exist", %{ +    conn: conn, +    reporter: reporter, +    activity: activity +  } do +    conn = +      conn +      |> assign(:user, reporter) +      |> post("/api/v1/reports", %{"status_ids" => [activity.id], "account_id" => "foo"}) + +    assert json_response(conn, 400) == %{"error" => "Account not found"} +  end +end diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index b3acb7a22..d316a61c1 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -1380,85 +1380,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      end    end -  describe "reports" do -    setup do -      reporter = insert(:user) -      target_user = insert(:user) - -      {:ok, activity} = CommonAPI.post(target_user, %{"status" => "foobar"}) - -      [reporter: reporter, target_user: target_user, activity: activity] -    end - -    test "submit a basic report", %{conn: conn, reporter: reporter, target_user: target_user} do -      assert %{"action_taken" => false, "id" => _} = -               conn -               |> assign(:user, reporter) -               |> post("/api/v1/reports", %{"account_id" => target_user.id}) -               |> json_response(200) -    end - -    test "submit a report with statuses and comment", %{ -      conn: conn, -      reporter: reporter, -      target_user: target_user, -      activity: activity -    } do -      assert %{"action_taken" => false, "id" => _} = -               conn -               |> assign(:user, reporter) -               |> post("/api/v1/reports", %{ -                 "account_id" => target_user.id, -                 "status_ids" => [activity.id], -                 "comment" => "bad status!", -                 "forward" => "false" -               }) -               |> json_response(200) -    end - -    test "account_id is required", %{ -      conn: conn, -      reporter: reporter, -      activity: activity -    } do -      assert %{"error" => "Valid `account_id` required"} = -               conn -               |> assign(:user, reporter) -               |> post("/api/v1/reports", %{"status_ids" => [activity.id]}) -               |> json_response(400) -    end - -    test "comment must be up to the size specified in the config", %{ -      conn: conn, -      reporter: reporter, -      target_user: target_user -    } do -      max_size = Config.get([:instance, :max_report_comment_size], 1000) -      comment = String.pad_trailing("a", max_size + 1, "a") - -      error = %{"error" => "Comment must be up to #{max_size} characters"} - -      assert ^error = -               conn -               |> assign(:user, reporter) -               |> post("/api/v1/reports", %{"account_id" => target_user.id, "comment" => comment}) -               |> json_response(400) -    end - -    test "returns error when account is not exist", %{ -      conn: conn, -      reporter: reporter, -      activity: activity -    } do -      conn = -        conn -        |> assign(:user, reporter) -        |> post("/api/v1/reports", %{"status_ids" => [activity.id], "account_id" => "foo"}) - -      assert json_response(conn, 400) == %{"error" => "Account not found"} -    end -  end -    describe "link headers" do      test "preserves parameters in link headers", %{conn: conn} do        user = insert(:user)  | 
