summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-11-04 15:00:52 +0000
committerlain <lain@soykaf.club>2020-11-04 15:00:52 +0000
commit4800ee656bbcd8fe21fe56531123d3a18eccc911 (patch)
treebddda9d9f46dff6d5ae8dc4ea21ca5b22ab9d781 /test
parent5db4c823b2e345155fbed48e7e7d12cab87eca72 (diff)
parenteb1e1e74945a55c37e4b0dc7cea1a7c926ff981a (diff)
downloadpleroma-4800ee656bbcd8fe21fe56531123d3a18eccc911.tar.gz
pleroma-4800ee656bbcd8fe21fe56531123d3a18eccc911.zip
Merge branch 'features/federation-status' into 'develop'
Add a federation_status endpoint showing unreachable instances See merge request pleroma/pleroma!3086
Diffstat (limited to 'test')
-rw-r--r--test/pleroma/web/pleroma_api/controllers/instances_controller_test.exs38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/pleroma/web/pleroma_api/controllers/instances_controller_test.exs b/test/pleroma/web/pleroma_api/controllers/instances_controller_test.exs
new file mode 100644
index 000000000..13491ed9c
--- /dev/null
+++ b/test/pleroma/web/pleroma_api/controllers/instances_controller_test.exs
@@ -0,0 +1,38 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.PleromaApi.InstancesControllerTest do
+ use Pleroma.Web.ConnCase
+
+ alias Pleroma.Instances
+
+ setup_all do: clear_config([:instance, :federation_reachability_timeout_days], 1)
+
+ setup do
+ constant = "http://consistently-unreachable.name/"
+ eventual = "http://eventually-unreachable.com/path"
+
+ {:ok, %Pleroma.Instances.Instance{unreachable_since: constant_unreachable}} =
+ Instances.set_consistently_unreachable(constant)
+
+ _eventual_unrechable = Instances.set_unreachable(eventual)
+
+ %{constant_unreachable: constant_unreachable, constant: constant}
+ end
+
+ test "GET /api/v1/pleroma/federation_status", %{
+ conn: conn,
+ constant_unreachable: constant_unreachable,
+ constant: constant
+ } do
+ constant_host = URI.parse(constant).host
+
+ assert conn
+ |> put_req_header("content-type", "application/json")
+ |> get("/api/v1/pleroma/federation_status")
+ |> json_response_and_validate_schema(200) == %{
+ "unreachable" => %{constant_host => to_string(constant_unreachable)}
+ }
+ end
+end