Merge branch 'fix/reblog-api' into 'develop'

Fix Reblog API

Closes #2423

See merge request pleroma/pleroma!3261
This commit is contained in:
feld 2021-01-18 21:19:14 +00:00
commit 958a7f6ed0
3 changed files with 34 additions and 1 deletions

View file

@ -117,7 +117,7 @@ def reblog_operation do
request_body("Parameters", %Schema{ request_body("Parameters", %Schema{
type: :object, type: :object,
properties: %{ properties: %{
visibility: %Schema{allOf: [VisibilityScope], default: "public"} visibility: %Schema{allOf: [VisibilityScope]}
} }
}), }),
responses: %{ responses: %{

View file

@ -744,6 +744,22 @@ test "repeating a status privately" do
refute Visibility.visible_for_user?(announce_activity, nil) refute Visibility.visible_for_user?(announce_activity, nil)
end end
test "author can repeat own private statuses" do
author = insert(:user)
follower = insert(:user)
CommonAPI.follow(follower, author)
{:ok, activity} = CommonAPI.post(author, %{status: "cofe", visibility: "private"})
{:ok, %Activity{} = announce_activity} = CommonAPI.repeat(activity.id, author)
assert Visibility.is_private?(announce_activity)
refute Visibility.visible_for_user?(announce_activity, nil)
assert Visibility.visible_for_user?(activity, follower)
assert {:error, :not_found} = CommonAPI.repeat(activity.id, follower)
end
test "favoriting a status" do test "favoriting a status" do
user = insert(:user) user = insert(:user)
other_user = insert(:user) other_user = insert(:user)

View file

@ -954,6 +954,23 @@ test "reblogged status for another user" do
assert to_string(activity.id) == id assert to_string(activity.id) == id
end end
test "author can reblog own private status", %{conn: conn, user: user} do
{:ok, activity} = CommonAPI.post(user, %{status: "cofe", visibility: "private"})
conn =
conn
|> put_req_header("content-type", "application/json")
|> post("/api/v1/statuses/#{activity.id}/reblog")
assert %{
"reblog" => %{"id" => id, "reblogged" => true, "reblogs_count" => 1},
"reblogged" => true,
"visibility" => "private"
} = json_response_and_validate_schema(conn, 200)
assert to_string(activity.id) == id
end
end end
describe "unreblogging" do describe "unreblogging" do