logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: da4b670451fcc41b960aeb33adb9f0184ba599cf
parent: 9a444c0d22fc935c0e268c10d32c847125fd3627
Author: lambda <pleromagit@rogerbraun.net>
Date:   Wed, 16 Jan 2019 08:59:40 +0000

Merge branch '518_instance_stats_fix' into 'develop'

[#518] Fix: /api/v1/instance ("domain_count"), /api/v1/instance/peers

Closes #518

See merge request pleroma/pleroma!673

Diffstat:

Mlib/pleroma/stats.ex3++-
Mtest/web/mastodon_api/mastodon_api_controller_test.exs28++++++++++++++++++++++------
2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex @@ -34,10 +34,11 @@ defmodule Pleroma.Stats do peers = from( u in Pleroma.User, - select: fragment("distinct ?->'host'", u.info), + select: fragment("distinct split_part(?, '@', 2)", u.nickname), where: u.local != ^true ) |> Repo.all() + |> Enum.filter(& &1) domain_count = Enum.count(peers) diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -1471,20 +1471,36 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do test "get instance information", %{conn: conn} do insert(:user, %{local: true}) user = insert(:user, %{local: true}) - insert(:user, %{local: false}) + insert(:user, %{local: false, nickname: "u@peer1.com"}) + insert(:user, %{local: false, nickname: "u@peer2.com"}) {:ok, _} = TwitterAPI.create_status(user, %{"status" => "cofe"}) Pleroma.Stats.update_stats() - conn = - conn - |> get("/api/v1/instance") + conn = get(conn, "/api/v1/instance") + + assert result = json_response(conn, 200) + + stats = result["stats"] + + assert stats + assert stats["user_count"] == 2 + assert stats["status_count"] == 1 + assert stats["domain_count"] == 2 + end + + test "get peers", %{conn: conn} do + insert(:user, %{local: false, nickname: "u@peer1.com"}) + insert(:user, %{local: false, nickname: "u@peer2.com"}) + + Pleroma.Stats.update_stats() + + conn = get(conn, "/api/v1/instance/peers") assert result = json_response(conn, 200) - assert result["stats"]["user_count"] == 2 - assert result["stats"]["status_count"] == 1 + assert ["peer1.com", "peer2.com"] == Enum.sort(result) end test "put settings", %{conn: conn} do