This commit is contained in:
parent
08256e9299
commit
19bc0b8c79
|
@ -319,6 +319,13 @@ def react_with_emoji(user, object, emoji, options \\ []) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def unreact_with_emoji(user, reaction_id, option \\ []) do
|
||||||
|
with local <- Keyword.get(options, :local, true),
|
||||||
|
activity_id <- Keyword.get(options, :activity_id, nil),
|
||||||
|
%Activity{actor: ^user.ap_id} = reaction_activity <- Activity.get_by_ap_id(reaction_id),
|
||||||
|
unreact_data
|
||||||
|
end
|
||||||
|
|
||||||
# TODO: This is weird, maybe we shouldn't check here if we can make the activity.
|
# TODO: This is weird, maybe we shouldn't check here if we can make the activity.
|
||||||
def like(
|
def like(
|
||||||
%User{ap_id: ap_id} = user,
|
%User{ap_id: ap_id} = user,
|
||||||
|
|
|
@ -760,6 +760,20 @@ test "adds an emoji reaction activity to the db" do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "unreacting to an object" do
|
||||||
|
test "adds an emoji reaction activity to the db" do
|
||||||
|
user = insert(:user)
|
||||||
|
reactor = insert(:user)
|
||||||
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "YASSSS queen slay"})
|
||||||
|
assert object = Object.normalize(activity)
|
||||||
|
|
||||||
|
{:ok, reaction_activity, object} = ActivityPub.react_with_emoji(reactor, object, "🔥")
|
||||||
|
{:ok, unreaction_activity} = ActivityPub.unreact_with_emoji(reactor, reaction_activity.id)
|
||||||
|
|
||||||
|
IO.inspect(object)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "like an object" do
|
describe "like an object" do
|
||||||
test_with_mock "sends an activity to federation", Pleroma.Web.Federator, [:passthrough], [] do
|
test_with_mock "sends an activity to federation", Pleroma.Web.Federator, [:passthrough], [] do
|
||||||
Pleroma.Config.put([:instance, :federating], true)
|
Pleroma.Config.put([:instance, :federating], true)
|
||||||
|
|
|
@ -236,6 +236,16 @@ test "reacting to a status with an emoji" do
|
||||||
# TODO: test error case.
|
# TODO: test error case.
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "unreacting to a status with an emoji" do
|
||||||
|
user = insert(:user)
|
||||||
|
other_user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"})
|
||||||
|
{:ok, reaction, _} = CommonAPI.react_with_emoji(activity.id, user, "👍")
|
||||||
|
|
||||||
|
assert false
|
||||||
|
end
|
||||||
|
|
||||||
test "repeating a status" do
|
test "repeating a status" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
|
@ -27,6 +27,22 @@ test "POST /api/v1/pleroma/statuses/:id/react_with_emoji", %{conn: conn} do
|
||||||
assert to_string(activity.id) == id
|
assert to_string(activity.id) == id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "POST /api/v1/pleroma/statuses/:id/unreact_with_emoji", %{conn: conn} do
|
||||||
|
user = insert(:user)
|
||||||
|
other_user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "#cofe"})
|
||||||
|
{:ok, activity, _object} = CommonAPI.react_with_emoji(activity.id, other_user, "☕")
|
||||||
|
|
||||||
|
result =
|
||||||
|
conn
|
||||||
|
|> assign(:user, other_user)
|
||||||
|
|> post("/api/v1/pleroma/statuses/#{activity.id}/unreact_with_emoji", %{"emoji" => "☕"})
|
||||||
|
|
||||||
|
assert %{"id" => id} = json_response(result, 200)
|
||||||
|
assert to_string(activity.id) == id
|
||||||
|
end
|
||||||
|
|
||||||
test "GET /api/v1/pleroma/statuses/:id/emoji_reactions_by", %{conn: conn} do
|
test "GET /api/v1/pleroma/statuses/:id/emoji_reactions_by", %{conn: conn} do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
Loading…
Reference in New Issue