32 lines
855 B
Elixir
32 lines
855 B
Elixir
|
defmodule MockActivityPub do
|
||
|
def publish_one(ret) do
|
||
|
{ret, "success"}
|
||
|
end
|
||
|
end
|
||
|
|
||
|
defmodule Pleroma.ActivityTest do
|
||
|
use Pleroma.DataCase
|
||
|
alias Pleroma.Web.Federator.RetryQueue
|
||
|
|
||
|
@small_retry_count 0
|
||
|
@hopeless_retry_count 10
|
||
|
|
||
|
test "failed posts are retried" do
|
||
|
{:retry, _timeout} = RetryQueue.get_retry_params(@small_retry_count)
|
||
|
|
||
|
assert {:noreply, %{delivered: 1}} ==
|
||
|
RetryQueue.handle_info({:send, :ok, MockActivityPub, @small_retry_count}, %{
|
||
|
delivered: 0
|
||
|
})
|
||
|
end
|
||
|
|
||
|
test "posts that have been tried too many times are dropped" do
|
||
|
{:drop, _timeout} = RetryQueue.get_retry_params(@hopeless_retry_count)
|
||
|
|
||
|
assert {:noreply, %{dropped: 1}} ==
|
||
|
RetryQueue.handle_cast({:maybe_enqueue, %{}, nil, @hopeless_retry_count}, %{
|
||
|
dropped: 0
|
||
|
})
|
||
|
end
|
||
|
end
|