aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlja <domainepublic@spectraltheorem.be>2020-11-28 10:34:31 +0100
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>2021-08-06 07:59:53 +0200
commit03030b47c22f4a193e7ddc582574d4a521854025 (patch)
tree1c41ea2bf9a15b07a1a07d7c55085fdb19ed928e
parent47fc57bbccbe5df32ef00dda0ee8bdd56b38885f (diff)
downloadpleroma-03030b47c22f4a193e7ddc582574d4a521854025.tar.gz
quarantine instances info
Added a new field in the nodeinfo called quarantined_instances_info This holds an object like `"quarantined_instances_info":{"quarantined_instances":{"quar.inst":{"reason":"whatever reason"}}}}`
-rw-r--r--lib/pleroma/web/mastodon_api/views/instance_view.ex10
-rw-r--r--test/pleroma/web/node_info_test.exs44
2 files changed, 42 insertions, 12 deletions
diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex
index db40ea3fa..a341ca6f4 100644
--- a/lib/pleroma/web/mastodon_api/views/instance_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex
@@ -98,7 +98,15 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do
|> Map.merge(%{
quarantined_instances:
quarantined
- |> Enum.map(fn {instance, reason} -> %{"instance" => instance, "reason" => reason} end)
+ |> Enum.map(fn {instance, _reason} -> instance end)
+ })
+ |> Map.merge(%{
+ quarantined_instances_info: %{
+ "quarantined_instances" =>
+ quarantined
+ |> Enum.map(fn {instance, reason} -> {instance, %{"reason" => reason}} end)
+ |> Enum.into(%{})
+ }
})
else
%{}
diff --git a/test/pleroma/web/node_info_test.exs b/test/pleroma/web/node_info_test.exs
index eb6b8bf6c..9deceb1b5 100644
--- a/test/pleroma/web/node_info_test.exs
+++ b/test/pleroma/web/node_info_test.exs
@@ -150,20 +150,42 @@ defmodule Pleroma.Web.NodeInfoTest do
)
end
- test "it shows quarantined instances data if enabled", %{conn: conn} do
- clear_config([:mrf, :transparency], true)
+ describe "Quarantined instances" do
+ setup do
+ clear_config([:mrf, :transparency], true)
+ quarantined_instances = [{"example.com", "reason to quarantine"}]
+ clear_config([:instance, :quarantined_instances], quarantined_instances)
+ end
- quarantined_instances = [{"example.com", ""}]
- clear_config([:instance, :quarantined_instances], quarantined_instances)
+ test "shows quarantined instances data if enabled", %{conn: conn} do
+ expected_config = ["example.com"]
- expected_config = [%{"instance" => "example.com", "reason" => ""}]
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
+ assert response["metadata"]["federation"]["quarantined_instances"] == expected_config
+ end
+
+ test "shows extra information in the quarantined_info field for relevant entries", %{
+ conn: conn
+ } do
+ clear_config([:mrf, :transparency], true)
+
+ expected_config = %{
+ "quarantined_instances" => %{
+ "example.com" => %{"reason" => "reason to quarantine"}
+ }
+ }
- assert response["metadata"]["federation"]["quarantined_instances"] == expected_config
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
+
+ assert response["metadata"]["federation"]["quarantined_instances_info"] == expected_config
+ end
end
describe "MRF SimplePolicy" do
@@ -205,7 +227,7 @@ defmodule Pleroma.Web.NodeInfoTest do
assert response["metadata"]["federation"]["exclusions"] == true
end
- test "shows extra information in the mrf_simple_extra field for relevant entries", %{
+ test "shows extra information in the mrf_simple_info field for relevant entries", %{
conn: conn
} do
simple_config = %{