instance_controller_test.exs (2713B)
- # Pleroma: A lightweight social networking server
- # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
- # SPDX-License-Identifier: AGPL-3.0-only
- defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do
- use Pleroma.Web.ConnCase
- alias Pleroma.User
- import Pleroma.Factory
- test "get instance information", %{conn: conn} do
- conn = get(conn, "/api/v1/instance")
- assert result = json_response_and_validate_schema(conn, 200)
- email = Pleroma.Config.get([:instance, :email])
- # Note: not checking for "max_toot_chars" since it's optional
- assert %{
- "uri" => _,
- "title" => _,
- "description" => _,
- "version" => _,
- "email" => from_config_email,
- "urls" => %{
- "streaming_api" => _
- },
- "stats" => _,
- "thumbnail" => _,
- "languages" => _,
- "registrations" => _,
- "approval_required" => _,
- "poll_limits" => _,
- "upload_limit" => _,
- "avatar_upload_limit" => _,
- "background_upload_limit" => _,
- "banner_upload_limit" => _,
- "background_image" => _,
- "chat_limit" => _,
- "description_limit" => _
- } = result
- assert result["pleroma"]["metadata"]["account_activation_required"] != nil
- assert result["pleroma"]["metadata"]["features"]
- assert result["pleroma"]["metadata"]["federation"]
- assert result["pleroma"]["metadata"]["fields_limits"]
- assert result["pleroma"]["vapid_public_key"]
- assert email == from_config_email
- end
- test "get instance stats", %{conn: conn} do
- user = insert(:user, %{local: true})
- user2 = insert(:user, %{local: true})
- {:ok, _user2} = User.deactivate(user2, !user2.deactivated)
- insert(:user, %{local: false, nickname: "u@peer1.com"})
- insert(:user, %{local: false, nickname: "u@peer2.com"})
- {:ok, _} = Pleroma.Web.CommonAPI.post(user, %{status: "cofe"})
- Pleroma.Stats.force_update()
- conn = get(conn, "/api/v1/instance")
- assert result = json_response_and_validate_schema(conn, 200)
- stats = result["stats"]
- assert stats
- assert stats["user_count"] == 1
- 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.force_update()
- conn = get(conn, "/api/v1/instance/peers")
- assert result = json_response_and_validate_schema(conn, 200)
- assert ["peer1.com", "peer2.com"] == Enum.sort(result)
- end
- end