prune_objects can prune orphaned activities
[akkoma] / test / mix / tasks / pleroma / count_statuses_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Mix.Tasks.Pleroma.CountStatusesTest do
6 # Uses log capture, has to stay synchronous
7 use Pleroma.DataCase
8
9 alias Pleroma.User
10 alias Pleroma.Web.CommonAPI
11
12 import ExUnit.CaptureIO, only: [capture_io: 1]
13 import Pleroma.Factory
14
15 test "counts statuses" do
16 user = insert(:user)
17 {:ok, _} = CommonAPI.post(user, %{status: "test"})
18 {:ok, _} = CommonAPI.post(user, %{status: "test2"})
19
20 user2 = insert(:user)
21 {:ok, _} = CommonAPI.post(user2, %{status: "test3"})
22
23 user = refresh_record(user)
24 user2 = refresh_record(user2)
25
26 assert %{note_count: 2} = user
27 assert %{note_count: 1} = user2
28
29 {:ok, user} = User.update_note_count(user, 0)
30 {:ok, user2} = User.update_note_count(user2, 0)
31
32 assert %{note_count: 0} = user
33 assert %{note_count: 0} = user2
34
35 assert capture_io(fn -> Mix.Tasks.Pleroma.CountStatuses.run([]) end) == "Done\n"
36
37 assert %{note_count: 2} = refresh_record(user)
38 assert %{note_count: 1} = refresh_record(user2)
39 end
40 end