Browse Source

MastoAPI: fix & test giving MRF reject reasons

chores/our-libs-hex-releases
Haelwenn (lanodan) Monnier 4 years ago
parent
commit
d29b8997f4
No known key found for this signature in database GPG Key ID: D5B7A8E43C997DEE
2 changed files with 18 additions and 0 deletions
  1. +5
    -0
      lib/pleroma/web/mastodon_api/controllers/status_controller.ex
  2. +13
    -0
      test/web/mastodon_api/controllers/status_controller_test.exs

+ 5
- 0
lib/pleroma/web/mastodon_api/controllers/status_controller.ex View File

@@ -172,6 +172,11 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
with_direct_conversation_id: true
)
else
{:error, {:reject, message}} ->
conn
|> put_status(:unprocessable_entity)
|> json(%{error: message})

{:error, message} ->
conn
|> put_status(:unprocessable_entity)


+ 13
- 0
test/web/mastodon_api/controllers/status_controller_test.exs View File

@@ -22,6 +22,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
setup do: clear_config([:instance, :federating])
setup do: clear_config([:instance, :allow_relay])
setup do: clear_config([:rich_media, :enabled])
setup do: clear_config([:mrf, :policies])
setup do: clear_config([:mrf_keyword, :reject])

describe "posting statuses" do
setup do: oauth_access(["write:statuses"])
@@ -157,6 +159,17 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
|> json_response_and_validate_schema(422)
end

test "Get MRF reason when posting a status is rejected by one", %{conn: conn} do
Pleroma.Config.put([:mrf_keyword, :reject], ["GNO"])
Pleroma.Config.put([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.KeywordPolicy])

assert %{"error" => "[KeywordPolicy] Matches with rejected keyword"} =
conn
|> put_req_header("content-type", "application/json")
|> post("api/v1/statuses", %{"status" => "GNO/Linux"})
|> json_response_and_validate_schema(422)
end

test "posting an undefined status with an attachment", %{user: user, conn: conn} do
file = %Plug.Upload{
content_type: "image/jpg",


Loading…
Cancel
Save