Web.TwitterAPI.UserView: Add rights.admin
[akkoma] / test / web / retry_queue_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule MockActivityPub do
6 def publish_one(ret) do
7 {ret, "success"}
8 end
9 end
10
11 defmodule Pleroma.Web.Federator.RetryQueueTest do
12 use Pleroma.DataCase
13 alias Pleroma.Web.Federator.RetryQueue
14
15 @small_retry_count 0
16 @hopeless_retry_count 10
17
18 test "failed posts are retried" do
19 {:retry, _timeout} = RetryQueue.get_retry_params(@small_retry_count)
20
21 assert {:noreply, %{delivered: 1}} ==
22 RetryQueue.handle_info({:send, :ok, MockActivityPub, @small_retry_count}, %{
23 delivered: 0
24 })
25 end
26
27 test "posts that have been tried too many times are dropped" do
28 {:drop, _timeout} = RetryQueue.get_retry_params(@hopeless_retry_count)
29
30 assert {:noreply, %{dropped: 1}} ==
31 RetryQueue.handle_cast({:maybe_enqueue, %{}, nil, @hopeless_retry_count}, %{
32 dropped: 0
33 })
34 end
35 end