diff options
| author | kaniini <ariadne@dereferenced.org> | 2019-10-02 10:46:14 +0000 | 
|---|---|---|
| committer | kaniini <ariadne@dereferenced.org> | 2019-10-02 10:46:14 +0000 | 
| commit | 433f2c0f6854d2838819e08f0fb0a9e8cf058021 (patch) | |
| tree | d098664dc27ca996f5797ac5b7fcddc282fe4869 /test | |
| parent | debd0a306697f629dd8a9c2e4bf3a9b5f87db77e (diff) | |
| parent | c8b01f6667a9b5b158103de449a7769c9274bcc3 (diff) | |
| download | pleroma-433f2c0f6854d2838819e08f0fb0a9e8cf058021.tar.gz pleroma-433f2c0f6854d2838819e08f0fb0a9e8cf058021.zip  | |
Merge branch 'split-masto-api/instance' into 'develop'
Extract instance actions from `MastodonAPIController` to `InstanceController`
See merge request pleroma/pleroma!1760
Diffstat (limited to 'test')
| -rw-r--r-- | test/web/mastodon_api/controllers/instance_controller_test.exs | 84 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 75 | 
2 files changed, 84 insertions, 75 deletions
diff --git a/test/web/mastodon_api/controllers/instance_controller_test.exs b/test/web/mastodon_api/controllers/instance_controller_test.exs new file mode 100644 index 000000000..f8049f81f --- /dev/null +++ b/test/web/mastodon_api/controllers/instance_controller_test.exs @@ -0,0 +1,84 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 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(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" => _, +             "poll_limits" => _, +             "upload_limit" => _, +             "avatar_upload_limit" => _, +             "background_upload_limit" => _, +             "banner_upload_limit" => _ +           } = result + +    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.info.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"}) + +    # Stats should count users with missing or nil `info.deactivated` value + +    {:ok, _user} = +      user.id +      |> User.get_cached_by_id() +      |> User.update_info(&Ecto.Changeset.change(&1, %{deactivated: nil})) + +    Pleroma.Stats.force_update() + +    conn = get(conn, "/api/v1/instance") + +    assert result = json_response(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(conn, 200) + +    assert ["peer1.com", "peer2.com"] == Enum.sort(result) +  end +end diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index e642e3c1a..7a58b13dc 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -5,7 +5,6 @@  defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do    use Pleroma.Web.ConnCase -  alias Ecto.Changeset    alias Pleroma.Config    alias Pleroma.Notification    alias Pleroma.Repo @@ -114,80 +113,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      assert [] = json_response(third_conn, 200)    end -  test "get instance information", %{conn: conn} do -    conn = get(conn, "/api/v1/instance") -    assert result = json_response(conn, 200) - -    email = 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" => _, -             "poll_limits" => _, -             "upload_limit" => _, -             "avatar_upload_limit" => _, -             "background_upload_limit" => _, -             "banner_upload_limit" => _ -           } = result - -    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.info.deactivated) - -    insert(:user, %{local: false, nickname: "u@peer1.com"}) -    insert(:user, %{local: false, nickname: "u@peer2.com"}) - -    {:ok, _} = CommonAPI.post(user, %{"status" => "cofe"}) - -    # Stats should count users with missing or nil `info.deactivated` value - -    {:ok, _user} = -      user.id -      |> User.get_cached_by_id() -      |> User.update_info(&Changeset.change(&1, %{deactivated: nil})) - -    Pleroma.Stats.force_update() - -    conn = get(conn, "/api/v1/instance") - -    assert result = json_response(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(conn, 200) - -    assert ["peer1.com", "peer2.com"] == Enum.sort(result) -  end -    test "put settings", %{conn: conn} do      user = insert(:user)  | 
