mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2026-02-15 17:16:57 +00:00
MastoAPI AccountView: Add mute/block expiry to the relationship key
This commit is contained in:
parent
6fac6ff7f1
commit
e7a4d5ea66
1 changed files with 76 additions and 2 deletions
|
|
@ -439,8 +439,10 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
|
||||||
following: false,
|
following: false,
|
||||||
followed_by: false,
|
followed_by: false,
|
||||||
blocking: false,
|
blocking: false,
|
||||||
|
block_expires_at: nil,
|
||||||
blocked_by: false,
|
blocked_by: false,
|
||||||
muting: false,
|
muting: false,
|
||||||
|
mute_expires_at: nil,
|
||||||
muting_notifications: false,
|
muting_notifications: false,
|
||||||
subscribing: false,
|
subscribing: false,
|
||||||
notifying: false,
|
notifying: false,
|
||||||
|
|
@ -536,6 +538,53 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
|
||||||
test_relationship_rendering(user, other_user, expected)
|
test_relationship_rendering(user, other_user, expected)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "represent a relationship for the blocking and blocked user with expiry" do
|
||||||
|
user = insert(:user)
|
||||||
|
other_user = insert(:user)
|
||||||
|
date = DateTime.utc_now() |> DateTime.add(24 * 60 * 60) |> DateTime.truncate(:second)
|
||||||
|
|
||||||
|
{:ok, user, other_user} = User.follow(user, other_user)
|
||||||
|
{:ok, _subscription} = User.subscribe(user, other_user)
|
||||||
|
{:ok, _user_relationship} = User.block(user, other_user, %{duration: 24 * 60 * 60})
|
||||||
|
{:ok, _user_relationship} = User.block(other_user, user)
|
||||||
|
|
||||||
|
expected =
|
||||||
|
Map.merge(
|
||||||
|
@blank_response,
|
||||||
|
%{
|
||||||
|
following: false,
|
||||||
|
blocking: true,
|
||||||
|
block_expires_at: date,
|
||||||
|
blocked_by: true,
|
||||||
|
id: to_string(other_user.id)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
test_relationship_rendering(user, other_user, expected)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "represent a relationship for the muting user with expiry" do
|
||||||
|
user = insert(:user)
|
||||||
|
other_user = insert(:user)
|
||||||
|
date = DateTime.utc_now() |> DateTime.add(24 * 60 * 60) |> DateTime.truncate(:second)
|
||||||
|
|
||||||
|
{:ok, _user_relationship} =
|
||||||
|
User.mute(user, other_user, %{notifications: true, duration: 24 * 60 * 60})
|
||||||
|
|
||||||
|
expected =
|
||||||
|
Map.merge(
|
||||||
|
@blank_response,
|
||||||
|
%{
|
||||||
|
muting: true,
|
||||||
|
mute_expires_at: date,
|
||||||
|
muting_notifications: true,
|
||||||
|
id: to_string(other_user.id)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
test_relationship_rendering(user, other_user, expected)
|
||||||
|
end
|
||||||
|
|
||||||
test "represent a relationship for the user blocking a domain" do
|
test "represent a relationship for the user blocking a domain" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
other_user = insert(:user, ap_id: "https://bad.site/users/other_user")
|
other_user = insert(:user, ap_id: "https://bad.site/users/other_user")
|
||||||
|
|
@ -856,12 +905,37 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
|
||||||
User.mute(user, other_user, %{notifications: true, duration: 24 * 60 * 60})
|
User.mute(user, other_user, %{notifications: true, duration: 24 * 60 * 60})
|
||||||
|
|
||||||
%{
|
%{
|
||||||
mute_expires_at: mute_expires_at
|
pleroma: %{
|
||||||
} = AccountView.render("show.json", %{user: other_user, for: user, mutes: true})
|
relationship: %{
|
||||||
|
mute_expires_at: mute_expires_at
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} = AccountView.render("show.json", %{user: other_user, for: user, embed_relationships: true})
|
||||||
|
|
||||||
assert DateTime.diff(
|
assert DateTime.diff(
|
||||||
mute_expires_at,
|
mute_expires_at,
|
||||||
DateTime.utc_now() |> DateTime.add(24 * 60 * 60)
|
DateTime.utc_now() |> DateTime.add(24 * 60 * 60)
|
||||||
) in -3..3
|
) in -3..3
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "renders block expiration date" do
|
||||||
|
user = insert(:user)
|
||||||
|
other_user = insert(:user)
|
||||||
|
|
||||||
|
{:ok, _user_relationships} =
|
||||||
|
User.block(user, other_user, %{duration: 24 * 60 * 60})
|
||||||
|
|
||||||
|
%{
|
||||||
|
pleroma: %{
|
||||||
|
relationship: %{
|
||||||
|
block_expires_at: block_expires_at
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} = AccountView.render("show.json", %{user: other_user, for: user, embed_relationships: true})
|
||||||
|
|
||||||
|
assert DateTime.diff(
|
||||||
|
block_expires_at,
|
||||||
|
DateTime.utc_now() |> DateTime.add(24 * 60 * 60)
|
||||||
|
) in -3..3
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue