diff options
| author | lain <lain@soykaf.club> | 2020-05-03 12:55:29 +0200 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2020-05-03 12:55:29 +0200 | 
| commit | 6fb96f64c13597bcf8d10f30442ac61610cec58e (patch) | |
| tree | 29db6b5d77a562dd496618ebcd54c15574f093a8 /test/web/mastodon_api | |
| parent | 4dfc617cdf1c2579f4f941dcd0fa5c728178df06 (diff) | |
| parent | 095635453ac58b9e01a32ad226c0b61466c16da0 (diff) | |
| download | pleroma-6fb96f64c13597bcf8d10f30442ac61610cec58e.tar.gz pleroma-6fb96f64c13597bcf8d10f30442ac61610cec58e.zip  | |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/delete-validator
Diffstat (limited to 'test/web/mastodon_api')
5 files changed, 199 insertions, 100 deletions
diff --git a/test/web/mastodon_api/controllers/account_controller_test.exs b/test/web/mastodon_api/controllers/account_controller_test.exs index ba70ba66c..b9da7e924 100644 --- a/test/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/web/mastodon_api/controllers/account_controller_test.exs @@ -925,7 +925,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do          |> Map.put(:remote_ip, {127, 0, 0, 5})          |> post("/api/v1/accounts", Map.delete(valid_params, :email)) -      assert json_response_and_validate_schema(res, 400) == %{"error" => "Missing parameters"} +      assert json_response_and_validate_schema(res, 400) == +               %{"error" => "Missing parameter: email"}        res =          conn @@ -1093,6 +1094,91 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      end    end +  describe "create account with enabled captcha" do +    setup %{conn: conn} do +      app_token = insert(:oauth_token, user: nil) + +      conn = +        conn +        |> put_req_header("authorization", "Bearer " <> app_token.token) +        |> put_req_header("content-type", "multipart/form-data") + +      [conn: conn] +    end + +    setup do: clear_config([Pleroma.Captcha, :enabled], true) + +    test "creates an account and returns 200 if captcha is valid", %{conn: conn} do +      %{token: token, answer_data: answer_data} = Pleroma.Captcha.new() + +      params = %{ +        username: "lain", +        email: "lain@example.org", +        password: "PlzDontHackLain", +        agreement: true, +        captcha_solution: Pleroma.Captcha.Mock.solution(), +        captcha_token: token, +        captcha_answer_data: answer_data +      } + +      assert %{ +               "access_token" => access_token, +               "created_at" => _, +               "scope" => ["read"], +               "token_type" => "Bearer" +             } = +               conn +               |> post("/api/v1/accounts", params) +               |> json_response_and_validate_schema(:ok) + +      assert Token |> Repo.get_by(token: access_token) |> Repo.preload(:user) |> Map.get(:user) + +      Cachex.del(:used_captcha_cache, token) +    end + +    test "returns 400 if any captcha field is not provided", %{conn: conn} do +      captcha_fields = [:captcha_solution, :captcha_token, :captcha_answer_data] + +      valid_params = %{ +        username: "lain", +        email: "lain@example.org", +        password: "PlzDontHackLain", +        agreement: true, +        captcha_solution: "xx", +        captcha_token: "xx", +        captcha_answer_data: "xx" +      } + +      for field <- captcha_fields do +        expected = %{ +          "error" => "{\"captcha\":[\"Invalid CAPTCHA (Missing parameter: #{field})\"]}" +        } + +        assert expected == +                 conn +                 |> post("/api/v1/accounts", Map.delete(valid_params, field)) +                 |> json_response_and_validate_schema(:bad_request) +      end +    end + +    test "returns an error if captcha is invalid", %{conn: conn} do +      params = %{ +        username: "lain", +        email: "lain@example.org", +        password: "PlzDontHackLain", +        agreement: true, +        captcha_solution: "cofe", +        captcha_token: "cofe", +        captcha_answer_data: "cofe" +      } + +      assert %{"error" => "{\"captcha\":[\"Invalid answer data\"]}"} == +               conn +               |> post("/api/v1/accounts", params) +               |> json_response_and_validate_schema(:bad_request) +    end +  end +    describe "GET /api/v1/accounts/:id/lists - account_lists" do      test "returns lists to which the account belongs" do        %{user: user, conn: conn} = oauth_access(["read:lists"]) diff --git a/test/web/mastodon_api/controllers/instance_controller_test.exs b/test/web/mastodon_api/controllers/instance_controller_test.exs index 2737dcaba..2c7fd9fd0 100644 --- a/test/web/mastodon_api/controllers/instance_controller_test.exs +++ b/test/web/mastodon_api/controllers/instance_controller_test.exs @@ -34,6 +34,10 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do               "banner_upload_limit" => _             } = result +    assert result["pleroma"]["metadata"]["features"] +    assert result["pleroma"]["metadata"]["federation"] +    assert result["pleroma"]["vapid_public_key"] +      assert email == from_config_email    end diff --git a/test/web/mastodon_api/controllers/notification_controller_test.exs b/test/web/mastodon_api/controllers/notification_controller_test.exs index 8c815b415..db380f76a 100644 --- a/test/web/mastodon_api/controllers/notification_controller_test.exs +++ b/test/web/mastodon_api/controllers/notification_controller_test.exs @@ -25,7 +25,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        conn        |> assign(:user, user)        |> get("/api/v1/notifications") -      |> json_response(200) +      |> json_response_and_validate_schema(200)      assert Enum.all?(response, fn n ->               get_in(n, ["account", "pleroma", "relationship"]) == %{} @@ -50,7 +50,9 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do          user.ap_id        }\" rel=\"ugc\">@<span>#{user.nickname}</span></a></span>" -    assert [%{"status" => %{"content" => response}} | _rest] = json_response(conn, 200) +    assert [%{"status" => %{"content" => response}} | _rest] = +             json_response_and_validate_schema(conn, 200) +      assert response == expected_response    end @@ -69,7 +71,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do          user.ap_id        }\" rel=\"ugc\">@<span>#{user.nickname}</span></a></span>" -    assert %{"status" => %{"content" => response}} = json_response(conn, 200) +    assert %{"status" => %{"content" => response}} = json_response_and_validate_schema(conn, 200)      assert response == expected_response    end @@ -84,9 +86,10 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      conn =        conn        |> assign(:user, user) -      |> post("/api/v1/notifications/dismiss", %{"id" => notification.id}) +      |> put_req_header("content-type", "application/json") +      |> post("/api/v1/notifications/dismiss", %{"id" => to_string(notification.id)}) -    assert %{} = json_response(conn, 200) +    assert %{} = json_response_and_validate_schema(conn, 200)    end    test "dismissing a single notification" do @@ -102,7 +105,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        |> assign(:user, user)        |> post("/api/v1/notifications/#{notification.id}/dismiss") -    assert %{} = json_response(conn, 200) +    assert %{} = json_response_and_validate_schema(conn, 200)    end    test "clearing all notifications" do @@ -115,11 +118,11 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      ret_conn = post(conn, "/api/v1/notifications/clear") -    assert %{} = json_response(ret_conn, 200) +    assert %{} = json_response_and_validate_schema(ret_conn, 200)      ret_conn = get(conn, "/api/v1/notifications") -    assert all = json_response(ret_conn, 200) +    assert all = json_response_and_validate_schema(ret_conn, 200)      assert all == []    end @@ -143,7 +146,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      result =        conn        |> get("/api/v1/notifications?limit=2&min_id=#{notification1_id}") -      |> json_response(:ok) +      |> json_response_and_validate_schema(:ok)      assert [%{"id" => ^notification3_id}, %{"id" => ^notification2_id}] = result @@ -151,7 +154,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      result =        conn        |> get("/api/v1/notifications?limit=2&since_id=#{notification1_id}") -      |> json_response(:ok) +      |> json_response_and_validate_schema(:ok)      assert [%{"id" => ^notification4_id}, %{"id" => ^notification3_id}] = result @@ -159,7 +162,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      result =        conn        |> get("/api/v1/notifications?limit=2&max_id=#{notification4_id}") -      |> json_response(:ok) +      |> json_response_and_validate_schema(:ok)      assert [%{"id" => ^notification3_id}, %{"id" => ^notification2_id}] = result    end @@ -181,36 +184,28 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        {:ok, private_activity} =          CommonAPI.post(other_user, %{"status" => "@#{user.nickname}", "visibility" => "private"}) -      conn_res = -        get(conn, "/api/v1/notifications", %{ -          exclude_visibilities: ["public", "unlisted", "private"] -        }) +      query = params_to_query(%{exclude_visibilities: ["public", "unlisted", "private"]}) +      conn_res = get(conn, "/api/v1/notifications?" <> query) -      assert [%{"status" => %{"id" => id}}] = json_response(conn_res, 200) +      assert [%{"status" => %{"id" => id}}] = json_response_and_validate_schema(conn_res, 200)        assert id == direct_activity.id -      conn_res = -        get(conn, "/api/v1/notifications", %{ -          exclude_visibilities: ["public", "unlisted", "direct"] -        }) +      query = params_to_query(%{exclude_visibilities: ["public", "unlisted", "direct"]}) +      conn_res = get(conn, "/api/v1/notifications?" <> query) -      assert [%{"status" => %{"id" => id}}] = json_response(conn_res, 200) +      assert [%{"status" => %{"id" => id}}] = json_response_and_validate_schema(conn_res, 200)        assert id == private_activity.id -      conn_res = -        get(conn, "/api/v1/notifications", %{ -          exclude_visibilities: ["public", "private", "direct"] -        }) +      query = params_to_query(%{exclude_visibilities: ["public", "private", "direct"]}) +      conn_res = get(conn, "/api/v1/notifications?" <> query) -      assert [%{"status" => %{"id" => id}}] = json_response(conn_res, 200) +      assert [%{"status" => %{"id" => id}}] = json_response_and_validate_schema(conn_res, 200)        assert id == unlisted_activity.id -      conn_res = -        get(conn, "/api/v1/notifications", %{ -          exclude_visibilities: ["unlisted", "private", "direct"] -        }) +      query = params_to_query(%{exclude_visibilities: ["unlisted", "private", "direct"]}) +      conn_res = get(conn, "/api/v1/notifications?" <> query) -      assert [%{"status" => %{"id" => id}}] = json_response(conn_res, 200) +      assert [%{"status" => %{"id" => id}}] = json_response_and_validate_schema(conn_res, 200)        assert id == public_activity.id      end @@ -237,8 +232,8 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        activity_ids =          conn -        |> get("/api/v1/notifications", %{exclude_visibilities: ["direct"]}) -        |> json_response(200) +        |> get("/api/v1/notifications?exclude_visibilities[]=direct") +        |> json_response_and_validate_schema(200)          |> Enum.map(& &1["status"]["id"])        assert public_activity.id in activity_ids @@ -248,8 +243,8 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        activity_ids =          conn -        |> get("/api/v1/notifications", %{exclude_visibilities: ["unlisted"]}) -        |> json_response(200) +        |> get("/api/v1/notifications?exclude_visibilities[]=unlisted") +        |> json_response_and_validate_schema(200)          |> Enum.map(& &1["status"]["id"])        assert public_activity.id in activity_ids @@ -259,8 +254,8 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        activity_ids =          conn -        |> get("/api/v1/notifications", %{exclude_visibilities: ["private"]}) -        |> json_response(200) +        |> get("/api/v1/notifications?exclude_visibilities[]=private") +        |> json_response_and_validate_schema(200)          |> Enum.map(& &1["status"]["id"])        assert public_activity.id in activity_ids @@ -270,8 +265,8 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        activity_ids =          conn -        |> get("/api/v1/notifications", %{exclude_visibilities: ["public"]}) -        |> json_response(200) +        |> get("/api/v1/notifications?exclude_visibilities[]=public") +        |> json_response_and_validate_schema(200)          |> Enum.map(& &1["status"]["id"])        refute public_activity.id in activity_ids @@ -295,8 +290,8 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        activity_ids =          conn -        |> get("/api/v1/notifications", %{exclude_visibilities: ["unlisted"]}) -        |> json_response(200) +        |> get("/api/v1/notifications?exclude_visibilities[]=unlisted") +        |> json_response_and_validate_schema(200)          |> Enum.map(& &1["status"]["id"])        assert public_activity.id in activity_ids @@ -319,25 +314,27 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      reblog_notification_id = get_notification_id_by_activity(reblog_activity)      follow_notification_id = get_notification_id_by_activity(follow_activity) -    conn_res = -      get(conn, "/api/v1/notifications", %{exclude_types: ["mention", "favourite", "reblog"]}) +    query = params_to_query(%{exclude_types: ["mention", "favourite", "reblog"]}) +    conn_res = get(conn, "/api/v1/notifications?" <> query) -    assert [%{"id" => ^follow_notification_id}] = json_response(conn_res, 200) +    assert [%{"id" => ^follow_notification_id}] = json_response_and_validate_schema(conn_res, 200) -    conn_res = -      get(conn, "/api/v1/notifications", %{exclude_types: ["favourite", "reblog", "follow"]}) +    query = params_to_query(%{exclude_types: ["favourite", "reblog", "follow"]}) +    conn_res = get(conn, "/api/v1/notifications?" <> query) -    assert [%{"id" => ^mention_notification_id}] = json_response(conn_res, 200) +    assert [%{"id" => ^mention_notification_id}] = +             json_response_and_validate_schema(conn_res, 200) -    conn_res = -      get(conn, "/api/v1/notifications", %{exclude_types: ["reblog", "follow", "mention"]}) +    query = params_to_query(%{exclude_types: ["reblog", "follow", "mention"]}) +    conn_res = get(conn, "/api/v1/notifications?" <> query) -    assert [%{"id" => ^favorite_notification_id}] = json_response(conn_res, 200) +    assert [%{"id" => ^favorite_notification_id}] = +             json_response_and_validate_schema(conn_res, 200) -    conn_res = -      get(conn, "/api/v1/notifications", %{exclude_types: ["follow", "mention", "favourite"]}) +    query = params_to_query(%{exclude_types: ["follow", "mention", "favourite"]}) +    conn_res = get(conn, "/api/v1/notifications?" <> query) -    assert [%{"id" => ^reblog_notification_id}] = json_response(conn_res, 200) +    assert [%{"id" => ^reblog_notification_id}] = json_response_and_validate_schema(conn_res, 200)    end    test "filters notifications using include_types" do @@ -355,32 +352,34 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      reblog_notification_id = get_notification_id_by_activity(reblog_activity)      follow_notification_id = get_notification_id_by_activity(follow_activity) -    conn_res = get(conn, "/api/v1/notifications", %{include_types: ["follow"]}) +    conn_res = get(conn, "/api/v1/notifications?include_types[]=follow") -    assert [%{"id" => ^follow_notification_id}] = json_response(conn_res, 200) +    assert [%{"id" => ^follow_notification_id}] = json_response_and_validate_schema(conn_res, 200) -    conn_res = get(conn, "/api/v1/notifications", %{include_types: ["mention"]}) +    conn_res = get(conn, "/api/v1/notifications?include_types[]=mention") -    assert [%{"id" => ^mention_notification_id}] = json_response(conn_res, 200) +    assert [%{"id" => ^mention_notification_id}] = +             json_response_and_validate_schema(conn_res, 200) -    conn_res = get(conn, "/api/v1/notifications", %{include_types: ["favourite"]}) +    conn_res = get(conn, "/api/v1/notifications?include_types[]=favourite") -    assert [%{"id" => ^favorite_notification_id}] = json_response(conn_res, 200) +    assert [%{"id" => ^favorite_notification_id}] = +             json_response_and_validate_schema(conn_res, 200) -    conn_res = get(conn, "/api/v1/notifications", %{include_types: ["reblog"]}) +    conn_res = get(conn, "/api/v1/notifications?include_types[]=reblog") -    assert [%{"id" => ^reblog_notification_id}] = json_response(conn_res, 200) +    assert [%{"id" => ^reblog_notification_id}] = json_response_and_validate_schema(conn_res, 200) -    result = conn |> get("/api/v1/notifications") |> json_response(200) +    result = conn |> get("/api/v1/notifications") |> json_response_and_validate_schema(200)      assert length(result) == 4 +    query = params_to_query(%{include_types: ["follow", "mention", "favourite", "reblog"]}) +      result =        conn -      |> get("/api/v1/notifications", %{ -        include_types: ["follow", "mention", "favourite", "reblog"] -      }) -      |> json_response(200) +      |> get("/api/v1/notifications?" <> query) +      |> json_response_and_validate_schema(200)      assert length(result) == 4    end @@ -402,7 +401,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      result =        conn        |> get("/api/v1/notifications") -      |> json_response(:ok) +      |> json_response_and_validate_schema(:ok)      assert [%{"id" => ^notification2_id}, %{"id" => ^notification1_id}] = result @@ -414,22 +413,19 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      result =        conn2        |> get("/api/v1/notifications") -      |> json_response(:ok) +      |> json_response_and_validate_schema(:ok)      assert [%{"id" => ^notification4_id}, %{"id" => ^notification3_id}] = result -    conn_destroy = -      conn -      |> delete("/api/v1/notifications/destroy_multiple", %{ -        "ids" => [notification1_id, notification2_id] -      }) +    query = params_to_query(%{ids: [notification1_id, notification2_id]}) +    conn_destroy = delete(conn, "/api/v1/notifications/destroy_multiple?" <> query) -    assert json_response(conn_destroy, 200) == %{} +    assert json_response_and_validate_schema(conn_destroy, 200) == %{}      result =        conn2        |> get("/api/v1/notifications") -      |> json_response(:ok) +      |> json_response_and_validate_schema(:ok)      assert [%{"id" => ^notification4_id}, %{"id" => ^notification3_id}] = result    end @@ -443,13 +439,13 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      ret_conn = get(conn, "/api/v1/notifications") -    assert length(json_response(ret_conn, 200)) == 1 +    assert length(json_response_and_validate_schema(ret_conn, 200)) == 1      {:ok, _user_relationships} = User.mute(user, user2)      conn = get(conn, "/api/v1/notifications") -    assert json_response(conn, 200) == [] +    assert json_response_and_validate_schema(conn, 200) == []    end    test "see notifications after muting user without notifications" do @@ -461,13 +457,13 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      ret_conn = get(conn, "/api/v1/notifications") -    assert length(json_response(ret_conn, 200)) == 1 +    assert length(json_response_and_validate_schema(ret_conn, 200)) == 1      {:ok, _user_relationships} = User.mute(user, user2, false)      conn = get(conn, "/api/v1/notifications") -    assert length(json_response(conn, 200)) == 1 +    assert length(json_response_and_validate_schema(conn, 200)) == 1    end    test "see notifications after muting user with notifications and with_muted parameter" do @@ -479,13 +475,13 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      ret_conn = get(conn, "/api/v1/notifications") -    assert length(json_response(ret_conn, 200)) == 1 +    assert length(json_response_and_validate_schema(ret_conn, 200)) == 1      {:ok, _user_relationships} = User.mute(user, user2) -    conn = get(conn, "/api/v1/notifications", %{"with_muted" => "true"}) +    conn = get(conn, "/api/v1/notifications?with_muted=true") -    assert length(json_response(conn, 200)) == 1 +    assert length(json_response_and_validate_schema(conn, 200)) == 1    end    @tag capture_log: true @@ -512,7 +508,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      conn = get(conn, "/api/v1/notifications") -    assert length(json_response(conn, 200)) == 1 +    assert length(json_response_and_validate_schema(conn, 200)) == 1    end    describe "link headers" do @@ -538,10 +534,10 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        conn =          conn          |> assign(:user, user) -        |> get("/api/v1/notifications", %{media_only: true}) +        |> get("/api/v1/notifications?limit=5")        assert [link_header] = get_resp_header(conn, "link") -      assert link_header =~ ~r/media_only=true/ +      assert link_header =~ ~r/limit=5/        assert link_header =~ ~r/min_id=#{notification2.id}/        assert link_header =~ ~r/max_id=#{notification1.id}/      end @@ -560,14 +556,14 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do        assert [%{"account" => %{"id" => ^account_id}}] =                 conn                 |> assign(:user, user) -               |> get("/api/v1/notifications", %{account_id: account_id}) -               |> json_response(200) +               |> get("/api/v1/notifications?account_id=#{account_id}") +               |> json_response_and_validate_schema(200)        assert %{"error" => "Account is not found"} =                 conn                 |> assign(:user, user) -               |> get("/api/v1/notifications", %{account_id: "cofe"}) -               |> json_response(404) +               |> get("/api/v1/notifications?account_id=cofe") +               |> json_response_and_validate_schema(404)      end    end @@ -577,4 +573,11 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do      |> Map.get(:id)      |> to_string()    end + +  defp params_to_query(%{} = params) do +    Enum.map_join(params, "&", fn +      {k, v} when is_list(v) -> Enum.map_join(v, "&", &"#{k}[]=#{&1}") +      {k, v} -> k <> "=" <> v +    end) +  end  end diff --git a/test/web/mastodon_api/controllers/report_controller_test.exs b/test/web/mastodon_api/controllers/report_controller_test.exs index 34ec8119e..21b037237 100644 --- a/test/web/mastodon_api/controllers/report_controller_test.exs +++ b/test/web/mastodon_api/controllers/report_controller_test.exs @@ -22,8 +22,9 @@ defmodule Pleroma.Web.MastodonAPI.ReportControllerTest do    test "submit a basic report", %{conn: conn, target_user: target_user} do      assert %{"action_taken" => false, "id" => _} =               conn +             |> put_req_header("content-type", "application/json")               |> post("/api/v1/reports", %{"account_id" => target_user.id}) -             |> json_response(200) +             |> json_response_and_validate_schema(200)    end    test "submit a report with statuses and comment", %{ @@ -33,23 +34,25 @@ defmodule Pleroma.Web.MastodonAPI.ReportControllerTest do    } do      assert %{"action_taken" => false, "id" => _} =               conn +             |> put_req_header("content-type", "application/json")               |> post("/api/v1/reports", %{                 "account_id" => target_user.id,                 "status_ids" => [activity.id],                 "comment" => "bad status!",                 "forward" => "false"               }) -             |> json_response(200) +             |> json_response_and_validate_schema(200)    end    test "account_id is required", %{      conn: conn,      activity: activity    } do -    assert %{"error" => "Valid `account_id` required"} = +    assert %{"error" => "Missing field: account_id."} =               conn +             |> put_req_header("content-type", "application/json")               |> post("/api/v1/reports", %{"status_ids" => [activity.id]}) -             |> json_response(400) +             |> json_response_and_validate_schema(400)    end    test "comment must be up to the size specified in the config", %{ @@ -63,17 +66,21 @@ defmodule Pleroma.Web.MastodonAPI.ReportControllerTest do      assert ^error =               conn +             |> put_req_header("content-type", "application/json")               |> post("/api/v1/reports", %{"account_id" => target_user.id, "comment" => comment}) -             |> json_response(400) +             |> json_response_and_validate_schema(400)    end    test "returns error when account is not exist", %{      conn: conn,      activity: activity    } do -    conn = post(conn, "/api/v1/reports", %{"status_ids" => [activity.id], "account_id" => "foo"}) +    conn = +      conn +      |> put_req_header("content-type", "application/json") +      |> post("/api/v1/reports", %{"status_ids" => [activity.id], "account_id" => "foo"}) -    assert json_response(conn, 400) == %{"error" => "Account not found"} +    assert json_response_and_validate_schema(conn, 400) == %{"error" => "Account not found"}    end    test "doesn't fail if an admin has no email", %{conn: conn, target_user: target_user} do @@ -81,7 +88,8 @@ defmodule Pleroma.Web.MastodonAPI.ReportControllerTest do      assert %{"action_taken" => false, "id" => _} =               conn +             |> put_req_header("content-type", "application/json")               |> post("/api/v1/reports", %{"account_id" => target_user.id}) -             |> json_response(200) +             |> json_response_and_validate_schema(200)    end  end diff --git a/test/web/mastodon_api/controllers/suggestion_controller_test.exs b/test/web/mastodon_api/controllers/suggestion_controller_test.exs index 8d0e70db8..f120bd0cd 100644 --- a/test/web/mastodon_api/controllers/suggestion_controller_test.exs +++ b/test/web/mastodon_api/controllers/suggestion_controller_test.exs @@ -5,8 +5,6 @@  defmodule Pleroma.Web.MastodonAPI.SuggestionControllerTest do    use Pleroma.Web.ConnCase -  alias Pleroma.Config -    setup do: oauth_access(["read"])    test "returns empty result", %{conn: conn} do  | 
