diff options
| author | Ivan Tashkinov <ivantashkinov@gmail.com> | 2019-12-06 00:26:31 +0300 |
|---|---|---|
| committer | Ivan Tashkinov <ivantashkinov@gmail.com> | 2019-12-06 00:26:31 +0300 |
| commit | 13926537b644c3a4f1904c2fcd5d25fe0f284663 (patch) | |
| tree | 713182a80672ab37ad9284ad82b399107f050208 /test/federation/federation_test.exs | |
| parent | af42c00cfffb2cd8e93857cd1cf2901113c45bd2 (diff) | |
| parent | 228bf4d214abe3bb62c52128d3bc145e396b174d (diff) | |
| download | pleroma-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.exs | 47 |
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 |
