aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pleroma/web/nodeinfo/nodeinfo_controller.ex3
-rw-r--r--test/web/node_info_test.exs23
2 files changed, 26 insertions, 0 deletions
diff --git a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex
index 8c775ce24..216a962bd 100644
--- a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex
+++ b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex
@@ -124,6 +124,9 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
end,
if Keyword.get(instance, :allow_relay) do
"relay"
+ end,
+ if Keyword.get(instance, :safe_dm_mentions) do
+ "safe_dm_mentions"
end
]
|> Enum.filter(& &1)
diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs
index 038feecc1..2fc42b7cc 100644
--- a/test/web/node_info_test.exs
+++ b/test/web/node_info_test.exs
@@ -108,4 +108,27 @@ defmodule Pleroma.Web.NodeInfoTest do
assert result = json_response(conn, 200)
assert Pleroma.Application.repository() == result["software"]["repository"]
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)
+
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
+
+ assert "safe_dm_mentions" in response["metadata"]["features"]
+
+ Pleroma.Config.put([:instance, :safe_dm_mentions], false)
+
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
+
+ refute "safe_dm_mentions" in response["metadata"]["features"]
+
+ Pleroma.Config.put([:instance, :safe_dm_mentions], option)
+ end
end