diff options
| -rw-r--r-- | lib/pleroma/web/nodeinfo/nodeinfo_controller.ex | 6 | ||||
| -rw-r--r-- | test/web/node_info_test.exs | 27 | 
2 files changed, 33 insertions, 0 deletions
diff --git a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex index 486b9f6a4..abcf46034 100644 --- a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex +++ b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex @@ -120,6 +120,12 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do            banner: Config.get([:instance, :banner_upload_limit]),            background: Config.get([:instance, :background_upload_limit])          }, +        fieldsLimits: %{ +          maxFields: Config.get([:instance, :max_account_fields]), +          maxRemoteFields: Config.get([:instance, :max_remote_account_fields]), +          nameLength: Config.get([:instance, :account_field_name_length]), +          valueLength: Config.get([:instance, :account_field_value_length]) +        },          accountActivationRequired: Config.get([:instance, :account_activation_required], false),          invitesEnabled: Config.get([:instance, :invites_enabled], false),          mailerEnabled: Config.get([Pleroma.Emails.Mailer, :enabled], false), diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs index 6cc876602..9a574a38d 100644 --- a/test/web/node_info_test.exs +++ b/test/web/node_info_test.exs @@ -61,6 +61,33 @@ defmodule Pleroma.Web.NodeInfoTest do      assert Pleroma.Application.repository() == result["software"]["repository"]    end +  test "returns fieldsLimits field", %{conn: conn} do +    max_account_fields = Pleroma.Config.get([:instance, :max_account_fields]) +    max_remote_account_fields = Pleroma.Config.get([:instance, :max_remote_account_fields]) +    account_field_name_length = Pleroma.Config.get([:instance, :account_field_name_length]) +    account_field_value_length = Pleroma.Config.get([:instance, :account_field_value_length]) + +    Pleroma.Config.put([:instance, :max_account_fields], 10) +    Pleroma.Config.put([:instance, :max_remote_account_fields], 15) +    Pleroma.Config.put([:instance, :account_field_name_length], 255) +    Pleroma.Config.put([:instance, :account_field_value_length], 2048) + +    response = +      conn +      |> get("/nodeinfo/2.1.json") +      |> json_response(:ok) + +    assert response["metadata"]["fieldsLimits"]["maxFields"] == 10 +    assert response["metadata"]["fieldsLimits"]["maxRemoteFields"] == 15 +    assert response["metadata"]["fieldsLimits"]["nameLength"] == 255 +    assert response["metadata"]["fieldsLimits"]["valueLength"] == 2048 + +    Pleroma.Config.put([:instance, :max_account_fields], max_account_fields) +    Pleroma.Config.put([:instance, :max_remote_account_fields], max_remote_account_fields) +    Pleroma.Config.put([:instance, :account_field_name_length], account_field_name_length) +    Pleroma.Config.put([:instance, :account_field_value_length], account_field_value_length) +  end +    test "it returns the safe_dm_mentions feature if enabled", %{conn: conn} do      option = Pleroma.Config.get([:instance, :safe_dm_mentions])      Pleroma.Config.put([:instance, :safe_dm_mentions], true)  | 
