forked from potsda.mn/mobilizon
Test refreshing instances does not update self relay actor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
parent
a4cc566ee7
commit
bf7ebfd989
|
@ -5,7 +5,9 @@ defmodule Mobilizon.Service.Workers.RefreshInstances do
|
||||||
|
|
||||||
use Oban.Worker, unique: [period: :infinity, keys: [:event_uuid, :action]]
|
use Oban.Worker, unique: [period: :infinity, keys: [:event_uuid, :action]]
|
||||||
|
|
||||||
|
alias Mobilizon.Actors.Actor
|
||||||
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
|
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
|
||||||
|
alias Mobilizon.Federation.ActivityPub.Relay
|
||||||
alias Mobilizon.Instances
|
alias Mobilizon.Instances
|
||||||
alias Mobilizon.Instances.Instance
|
alias Mobilizon.Instances.Instance
|
||||||
alias Oban.Job
|
alias Oban.Job
|
||||||
|
@ -22,13 +24,20 @@ defmodule Mobilizon.Service.Workers.RefreshInstances do
|
||||||
@spec refresh_instance_actor(Instance.t()) ::
|
@spec refresh_instance_actor(Instance.t()) ::
|
||||||
{:ok, Mobilizon.Actors.Actor.t()}
|
{:ok, Mobilizon.Actors.Actor.t()}
|
||||||
| {:error,
|
| {:error,
|
||||||
Mobilizon.Federation.ActivityPub.Actor.make_actor_errors()
|
ActivityPubActor.make_actor_errors()
|
||||||
| Mobilizon.Federation.WebFinger.finger_errors()}
|
| Mobilizon.Federation.WebFinger.finger_errors()}
|
||||||
defp refresh_instance_actor(%Instance{domain: nil}) do
|
def refresh_instance_actor(%Instance{domain: nil}) do
|
||||||
{:error, :not_remote_instance}
|
{:error, :not_remote_instance}
|
||||||
end
|
end
|
||||||
|
|
||||||
defp refresh_instance_actor(%Instance{domain: domain}) do
|
def refresh_instance_actor(%Instance{domain: domain}) do
|
||||||
|
%Actor{url: url} = Relay.get_actor()
|
||||||
|
%URI{host: host} = URI.new!(url)
|
||||||
|
|
||||||
|
if host == domain do
|
||||||
|
{:error, :not_remote_instance}
|
||||||
|
else
|
||||||
ActivityPubActor.find_or_make_actor_from_nickname("relay@#{domain}")
|
ActivityPubActor.find_or_make_actor_from_nickname("relay@#{domain}")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
28
test/service/workers/refresh_instances_test.exs
Normal file
28
test/service/workers/refresh_instances_test.exs
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
defmodule Mobilizon.Service.Workers.RefreshInstancesTest do
|
||||||
|
@moduledoc """
|
||||||
|
Test the refresh instance module
|
||||||
|
"""
|
||||||
|
|
||||||
|
alias Mobilizon.Actors.Actor
|
||||||
|
alias Mobilizon.Federation.ActivityPub.Relay
|
||||||
|
alias Mobilizon.Instances.Instance
|
||||||
|
alias Mobilizon.Service.Workers.RefreshInstances
|
||||||
|
|
||||||
|
use Mobilizon.DataCase
|
||||||
|
|
||||||
|
describe "Refresh instance actor" do
|
||||||
|
test "unless if local actor" do
|
||||||
|
# relay = Mobilizon.Web.Relay.get_actor()
|
||||||
|
assert {:error, :not_remote_instance} ==
|
||||||
|
RefreshInstances.refresh_instance_actor(%Instance{domain: nil})
|
||||||
|
end
|
||||||
|
|
||||||
|
test "unless if local relay actor" do
|
||||||
|
%Actor{url: url} = Relay.get_actor()
|
||||||
|
%URI{host: domain} = URI.new!(url)
|
||||||
|
|
||||||
|
assert {:error, :not_remote_instance} ==
|
||||||
|
RefreshInstances.refresh_instance_actor(%Instance{domain: domain})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue