From: Roman Chvanikov Date: Wed, 13 May 2020 16:56:40 +0000 (+0300) Subject: Merge develop X-Git-Url: https://git.squeep.com/?a=commitdiff_plain;h=8a383707ae143ba47fa1ba68da20bc6bec425126;p=akkoma Merge develop --- 8a383707ae143ba47fa1ba68da20bc6bec425126 diff --cc test/stats_test.exs index 33ed0b7dd,4b76e2e78..f09d8d31a --- a/test/stats_test.exs +++ b/test/stats_test.exs @@@ -17,13 -17,12 +17,13 @@@ defmodule Pleroma.StatsTest d end end - describe "status visibility count" do + describe "status visibility sum count" do test "on new status" do + instance2 = "instance2.tld" user = insert(:user) - other_user = insert(:user) + other_user = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) - CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) + CommonAPI.post(user, %{visibility: "public", status: "hey"}) Enum.each(0..1, fn _ -> CommonAPI.post(user, %{ @@@ -52,18 -51,18 +52,18 @@@ test "on status delete" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) + {:ok, activity} = CommonAPI.post(user, %{visibility: "public", status: "hey"}) - assert %{public: 1} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 1} = Pleroma.Stats.get_status_visibility_count() CommonAPI.delete(activity.id, user) - assert %{public: 0} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 0} = Pleroma.Stats.get_status_visibility_count() end test "on status visibility update" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) + {:ok, activity} = CommonAPI.post(user, %{visibility: "public", status: "hey"}) - assert %{public: 1, private: 0} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 1, "private" => 0} = Pleroma.Stats.get_status_visibility_count() - {:ok, _} = CommonAPI.update_activity_scope(activity.id, %{"visibility" => "private"}) + {:ok, _} = CommonAPI.update_activity_scope(activity.id, %{visibility: "private"}) - assert %{public: 0, private: 1} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 0, "private" => 1} = Pleroma.Stats.get_status_visibility_count() end test "doesn't count unrelated activities" do @@@ -78,42 -77,4 +78,42 @@@ Pleroma.Stats.get_status_visibility_count() end end + + describe "status visibility by instance count" do + test "single instance" do + local_instance = Pleroma.Web.Endpoint.url() |> String.split("//") |> Enum.at(1) + instance2 = "instance2.tld" + user1 = insert(:user) + user2 = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) + - CommonAPI.post(user1, %{"visibility" => "public", "status" => "hey"}) ++ CommonAPI.post(user1, %{visibility: "public", status: "hey"}) + + Enum.each(1..5, fn _ -> + CommonAPI.post(user1, %{ - "visibility" => "unlisted", - "status" => "hey" ++ visibility: "unlisted", ++ status: "hey" + }) + end) + + Enum.each(1..10, fn _ -> + CommonAPI.post(user1, %{ - "visibility" => "direct", - "status" => "hey @#{user2.nickname}" ++ visibility: "direct", ++ status: "hey @#{user2.nickname}" + }) + end) + + Enum.each(1..20, fn _ -> + CommonAPI.post(user2, %{ - "visibility" => "private", - "status" => "hey" ++ visibility: "private", ++ status: "hey" + }) + end) + + assert %{"direct" => 10, "private" => 0, "public" => 1, "unlisted" => 5} = + Pleroma.Stats.get_status_visibility_count(local_instance) + + assert %{"direct" => 0, "private" => 20, "public" => 0, "unlisted" => 0} = + Pleroma.Stats.get_status_visibility_count(instance2) + end + end end diff --cc test/web/admin_api/admin_api_controller_test.exs index c3de89ac0,e4b0dd627..dd0c6b88d --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@@ -3612,26 -3603,6 +3603,26 @@@ defmodule Pleroma.Web.AdminAPI.AdminAPI assert %{"direct" => 0, "private" => 0, "public" => 1, "unlisted" => 2} = response["status_visibility"] end + + test "by instance", %{conn: conn} do + admin = insert(:user, is_admin: true) + user1 = insert(:user) + instance2 = "instance2.tld" + user2 = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) + - CommonAPI.post(user1, %{"visibility" => "public", "status" => "hey"}) - CommonAPI.post(user2, %{"visibility" => "unlisted", "status" => "hey"}) - CommonAPI.post(user2, %{"visibility" => "private", "status" => "hey"}) ++ CommonAPI.post(user1, %{visibility: "public", status: "hey"}) ++ CommonAPI.post(user2, %{visibility: "unlisted", status: "hey"}) ++ CommonAPI.post(user2, %{visibility: "private", status: "hey"}) + + response = + conn + |> assign(:user, admin) + |> get("/api/pleroma/admin/stats", instance: instance2) + |> json_response(200) + + assert %{"direct" => 0, "private" => 1, "public" => 0, "unlisted" => 1} = + response["status_visibility"] + end end describe "POST /api/pleroma/admin/oauth_app" do