1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Mix.Tasks.Pleroma.RefreshCounterCacheTest do
6 # Uses log capture, has to stay synchronous
8 alias Pleroma.Web.CommonAPI
9 import ExUnit.CaptureIO, only: [capture_io: 1]
10 import Pleroma.Factory
12 test "counts statuses" do
14 other_user = insert(:user)
16 CommonAPI.post(user, %{visibility: "public", status: "hey"})
18 Enum.each(0..1, fn _ ->
19 CommonAPI.post(user, %{
20 visibility: "unlisted",
25 Enum.each(0..2, fn _ ->
26 CommonAPI.post(user, %{
28 status: "hey @#{other_user.nickname}"
32 Enum.each(0..3, fn _ ->
33 CommonAPI.post(user, %{
34 visibility: "private",
39 assert capture_io(fn -> Mix.Tasks.Pleroma.RefreshCounterCache.run([]) end) =~ "Done\n"
41 assert %{"direct" => 3, "private" => 4, "public" => 1, "unlisted" => 2} =
42 Pleroma.Stats.get_status_visibility_count()