Make sure suspended actors are not in the AP cache anymore

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2022-04-06 15:49:42 +02:00
parent 501e0d12e4
commit da2254089c
3 changed files with 40 additions and 3 deletions

View File

@@ -14,6 +14,7 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Service.ActorSuspension
alias Mobilizon.Service.HTTP.ActivityPub.Mock
alias Mobilizon.Web.ActivityPub.ActorView
alias Mobilizon.Web.{Endpoint, PageView}
@@ -44,6 +45,24 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
|> Jason.encode!()
|> Jason.decode!()
end
test "it returns nothing if the actor is suspended", %{conn: conn} do
suspended = insert(:actor)
conn = get(conn, Actor.build_url(suspended.preferred_username, :page))
assert json_response(conn, 200)
assert {:ok, true} ==
Cachex.exists?(:activity_pub, "actor_" <> suspended.preferred_username)
ActorSuspension.suspend_actor(suspended)
assert {:ok, false} ==
Cachex.exists?(:activity_pub, "actor_" <> suspended.preferred_username)
conn = get(conn, Actor.build_url(suspended.preferred_username, :page))
assert json_response(conn, 404)
end
end
describe "/events/:uuid" do

View File

@@ -4,7 +4,7 @@ defmodule Mobilizon.Web.PageControllerTest do
import Mobilizon.Factory
alias Mobilizon.Actors.Actor
alias Mobilizon.Service.ActorSuspension
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.Router.Helpers, as: Routes
@@ -37,6 +37,18 @@ defmodule Mobilizon.Web.PageControllerTest do
conn = get(conn, Actor.build_url("not_existing", :page))
assert html_response(conn, 404)
end
test "GET /@actor when suspended", %{conn: conn} do
suspended = insert(:actor)
conn = get(conn, Actor.build_url(suspended.preferred_username, :page))
assert html_response(conn, 200)
ActorSuspension.suspend_actor(suspended)
conn = get(conn, Actor.build_url(suspended.preferred_username, :page))
assert html_response(conn, 404)
end
end
test "GET /events/:uuid", %{conn: conn} do