default_features = [
"pleroma_api",
+ "akkoma_api",
"mastodon_api",
"mastodon_api_streaming",
"polls",
"shareable_emoji_packs",
"multifetch",
"pleroma_emoji_reactions",
- "pleroma:api/v1/notifications:include_types_filter",
- "pleroma_chat_messages"
+ "pleroma:api/v1/notifications:include_types_filter"
]
assert MapSet.subset?(
)
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
+
+ test "shows quarantined instances data if enabled", %{conn: conn} do
+ expected_config = ["example.com"]
+
+ 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"}
+ }
+ }
+
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
- quarantined_instances = [{"example.com", ""}]
- clear_config([:instance, :quarantined_instances], quarantined_instances)
+ assert response["metadata"]["federation"]["quarantined_instances_info"] == expected_config
+ end
+ end
- expected_config = [%{"instance" => "example.com", "reason" => ""}]
+ test "Bubble instances", %{conn: conn} do
+ clear_config([:instance, :local_bubble], [])
response =
conn
|> get("/nodeinfo/2.1.json")
|> json_response(:ok)
- assert response["metadata"]["federation"]["quarantined_instances"] == expected_config
+ assert response["metadata"]["localBubbleInstances"] == []
+ clear_config([:instance, :local_bubble], ["example.com"])
+
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
+
+ assert response["metadata"]["localBubbleInstances"] == ["example.com"]
end
describe "MRF SimplePolicy" 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 = %{
assert response["metadata"]["federation"]["mrf_simple_info"] == expected_config
end
end
+
+ describe "public timeline visibility" do
+ test "shows public timeline visibility", %{conn: conn} do
+ clear_config([:restrict_unauthenticated, :timelines], %{local: false, federated: false})
+
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
+
+ assert response["metadata"]["publicTimelineVisibility"]["local"] == true
+ assert response["metadata"]["publicTimelineVisibility"]["federated"] == true
+
+ clear_config([:restrict_unauthenticated, :timelines], %{local: true, federated: false})
+
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
+
+ assert response["metadata"]["publicTimelineVisibility"]["local"] == false
+ assert response["metadata"]["publicTimelineVisibility"]["federated"] == true
+
+ clear_config([:restrict_unauthenticated, :timelines], %{local: false, federated: true})
+
+ response =
+ conn
+ |> get("/nodeinfo/2.1.json")
+ |> json_response(:ok)
+
+ assert response["metadata"]["publicTimelineVisibility"]["local"] == true
+ assert response["metadata"]["publicTimelineVisibility"]["federated"] == false
+ end
+ end
end