summaryrefslogtreecommitdiff
path: root/test/federation/federation_test.exs
diff options
context:
space:
mode:
authorIvan Tashkinov <ivantashkinov@gmail.com>2019-12-06 00:26:31 +0300
committerIvan Tashkinov <ivantashkinov@gmail.com>2019-12-06 00:26:31 +0300
commit13926537b644c3a4f1904c2fcd5d25fe0f284663 (patch)
tree713182a80672ab37ad9284ad82b399107f050208 /test/federation/federation_test.exs
parentaf42c00cfffb2cd8e93857cd1cf2901113c45bd2 (diff)
parent228bf4d214abe3bb62c52128d3bc145e396b174d (diff)
downloadpleroma-13926537b644c3a4f1904c2fcd5d25fe0f284663.tar.gz
pleroma-13926537b644c3a4f1904c2fcd5d25fe0f284663.zip
Merge remote-tracking branch 'remotes/origin/develop' into 1427-oauth-admin-scopes
Diffstat (limited to 'test/federation/federation_test.exs')
-rw-r--r--test/federation/federation_test.exs47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/federation/federation_test.exs b/test/federation/federation_test.exs
new file mode 100644
index 000000000..45800568a
--- /dev/null
+++ b/test/federation/federation_test.exs
@@ -0,0 +1,47 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Integration.FederationTest do
+ use Pleroma.DataCase
+ @moduletag :federated
+ import Pleroma.Cluster
+
+ setup_all do
+ Pleroma.Cluster.spawn_default_cluster()
+ :ok
+ end
+
+ @federated1 :"federated1@127.0.0.1"
+ describe "federated cluster primitives" do
+ test "within/2 captures local bindings and executes block on remote node" do
+ captured_binding = :captured
+
+ result =
+ within @federated1 do
+ user = Pleroma.Factory.insert(:user)
+ {captured_binding, node(), user}
+ end
+
+ assert {:captured, @federated1, user} = result
+ refute Pleroma.User.get_by_id(user.id)
+ assert user.id == within(@federated1, do: Pleroma.User.get_by_id(user.id)).id
+ end
+
+ test "runs webserver on customized port" do
+ {nickname, url, url_404} =
+ within @federated1 do
+ import Pleroma.Web.Router.Helpers
+ user = Pleroma.Factory.insert(:user)
+ user_url = account_url(Pleroma.Web.Endpoint, :show, user)
+ url_404 = account_url(Pleroma.Web.Endpoint, :show, "not-exists")
+
+ {user.nickname, user_url, url_404}
+ end
+
+ assert {:ok, {{_, 200, _}, _headers, body}} = :httpc.request(~c"#{url}")
+ assert %{"acct" => ^nickname} = Jason.decode!(body)
+ assert {:ok, {{_, 404, _}, _headers, _body}} = :httpc.request(~c"#{url_404}")
+ end
+ end
+end