summaryrefslogtreecommitdiff
path: root/test/support
diff options
context:
space:
mode:
Diffstat (limited to 'test/support')
-rw-r--r--test/support/conn_case.ex24
-rw-r--r--test/support/helpers.ex36
-rw-r--r--test/support/http_request_mock.ex8
3 files changed, 40 insertions, 28 deletions
diff --git a/test/support/conn_case.ex b/test/support/conn_case.ex
index 0f2e81f9e..064874201 100644
--- a/test/support/conn_case.ex
+++ b/test/support/conn_case.ex
@@ -26,6 +26,8 @@ defmodule Pleroma.Web.ConnCase do
use Pleroma.Tests.Helpers
import Pleroma.Web.Router.Helpers
+ alias Pleroma.Config
+
# The default endpoint for testing
@endpoint Pleroma.Web.Endpoint
@@ -48,6 +50,28 @@ defmodule Pleroma.Web.ConnCase do
%{user: user, token: token, conn: conn}
end
+
+ defp ensure_federating_or_authenticated(conn, url, user) do
+ initial_setting = Config.get([:instance, :federating])
+ on_exit(fn -> Config.put([:instance, :federating], initial_setting) end)
+
+ Config.put([:instance, :federating], false)
+
+ conn
+ |> get(url)
+ |> response(403)
+
+ conn
+ |> assign(:user, user)
+ |> get(url)
+ |> response(200)
+
+ Config.put([:instance, :federating], true)
+
+ conn
+ |> get(url)
+ |> response(200)
+ end
end
end
diff --git a/test/support/helpers.ex b/test/support/helpers.ex
index 6bf4b019e..e68e9bfd2 100644
--- a/test/support/helpers.ex
+++ b/test/support/helpers.ex
@@ -17,35 +17,17 @@ defmodule Pleroma.Tests.Helpers do
defmacro clear_config(config_path, do: yield) do
quote do
- setup do
- initial_setting = Config.get(unquote(config_path))
- unquote(yield)
- on_exit(fn -> Config.put(unquote(config_path), initial_setting) end)
- :ok
- end
- end
- end
-
- @doc "Stores initial config value and restores it after *all* test examples are executed."
- defmacro clear_config_all(config_path) do
- quote do
- clear_config_all(unquote(config_path)) do
- end
+ initial_setting = Config.get(unquote(config_path))
+ unquote(yield)
+ on_exit(fn -> Config.put(unquote(config_path), initial_setting) end)
+ :ok
end
end
- @doc """
- Stores initial config value and restores it after *all* test examples are executed.
- Only use if *all* test examples should work with the same stubbed value
- (*no* examples set a different value).
- """
- defmacro clear_config_all(config_path, do: yield) do
+ defmacro clear_config(config_path, temp_setting) do
quote do
- setup_all do
- initial_setting = Config.get(unquote(config_path))
- unquote(yield)
- on_exit(fn -> Config.put(unquote(config_path), initial_setting) end)
- :ok
+ clear_config(unquote(config_path)) do
+ Config.put(unquote(config_path), unquote(temp_setting))
end
end
end
@@ -55,9 +37,7 @@ defmodule Pleroma.Tests.Helpers do
import Pleroma.Tests.Helpers,
only: [
clear_config: 1,
- clear_config: 2,
- clear_config_all: 1,
- clear_config_all: 2
+ clear_config: 2
]
def to_datetime(naive_datetime) do
diff --git a/test/support/http_request_mock.ex b/test/support/http_request_mock.ex
index 0079d8c44..79ab129fd 100644
--- a/test/support/http_request_mock.ex
+++ b/test/support/http_request_mock.ex
@@ -1292,6 +1292,10 @@ defmodule HttpRequestMock do
{:ok, %Tesla.Env{status: 404, body: ""}}
end
+ def get("https://relay.mastodon.host/actor", _, _, _) do
+ {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/relay/relay.json")}}
+ end
+
def get(url, query, body, headers) do
{:error,
"Mock response not implemented for GET #{inspect(url)}, #{query}, #{inspect(body)}, #{
@@ -1304,6 +1308,10 @@ defmodule HttpRequestMock do
def post(url, query \\ [], body \\ [], headers \\ [])
+ def post("https://relay.mastodon.host/inbox", _, _, _) do
+ {:ok, %Tesla.Env{status: 200, body: ""}}
+ end
+
def post("http://example.org/needs_refresh", _, _, _) do
{:ok,
%Tesla.Env{