summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-12-30 21:34:58 +0000
committerMark Felder <feld@feld.me>2022-06-07 17:51:29 +0000
commitfba75ad6df351f4beae03eca0740205e9aab968a (patch)
treeb83bd8aaac9aa2084834cdea9e54c1d97597f8b6
parentb4678cb5da87110ae355537975b66747b9f4b5be (diff)
Bring back :send_user_agent for test env only.
Too many tests break as they don't include injected user agent in expected response
-rw-r--r--config/test.exs2
-rw-r--r--lib/pleroma/http/request_builder.ex22
-rw-r--r--test/pleroma/reverse_proxy_test.exs6
3 files changed, 19 insertions, 11 deletions
diff --git a/config/test.exs b/config/test.exs
index 78694de6b..61ff1adef 100644
--- a/config/test.exs
+++ b/config/test.exs
@@ -95,6 +95,8 @@ config :pleroma, :rate_limit, %{}
config :pleroma, :http_security, report_uri: "https://endpoint.com"
+config :pleroma, :http, send_user_agent: false
+
rum_enabled = System.get_env("RUM_ENABLED") == "true"
config :pleroma, :database, rum_enabled: rum_enabled
IO.puts("RUM enabled: #{rum_enabled}")
diff --git a/lib/pleroma/http/request_builder.ex b/lib/pleroma/http/request_builder.ex
index af679a00b..cebacd878 100644
--- a/lib/pleroma/http/request_builder.ex
+++ b/lib/pleroma/http/request_builder.ex
@@ -10,6 +10,8 @@ defmodule Pleroma.HTTP.RequestBuilder do
alias Pleroma.HTTP.Request
alias Tesla.Multipart
+ @mix_env Mix.env()
+
@doc """
Creates new request
"""
@@ -33,13 +35,7 @@ defmodule Pleroma.HTTP.RequestBuilder do
"""
@spec headers(Request.t(), Request.headers()) :: Request.t()
def headers(request, headers) do
- headers_list =
- with nil <- Enum.find(headers, fn {key, _val} -> String.downcase(key) == "user-agent" end) do
- [{"user-agent", Pleroma.Application.user_agent()} | headers]
- else
- _ ->
- headers
- end
+ headers_list = maybe_add_user_agent(headers, @mix_env)
%{request | headers: headers_list}
end
@@ -91,4 +87,16 @@ defmodule Pleroma.HTTP.RequestBuilder do
|> Map.from_struct()
|> Enum.into([])
end
+
+ defp maybe_add_user_agent(headers, :test) do
+ with true <- Pleroma.Config.get([:http, :send_user_agent]) do
+ [{"user-agent", Pleroma.Application.user_agent()} | headers]
+ else
+ _ ->
+ headers
+ end
+ end
+
+ defp maybe_add_user_agent(headers, _),
+ do: [{"user-agent", Pleroma.Application.user_agent()} | headers]
end
diff --git a/test/pleroma/reverse_proxy_test.exs b/test/pleroma/reverse_proxy_test.exs
index b90f67375..aa52ad561 100644
--- a/test/pleroma/reverse_proxy_test.exs
+++ b/test/pleroma/reverse_proxy_test.exs
@@ -27,6 +27,7 @@ defmodule Pleroma.ReverseProxyTest do
end
test "use Pleroma's user agent in the request; don't pass the client's", %{conn: conn} do
+ clear_config([:http, :send_user_agent], true)
# Mock will fail if the client's user agent isn't filtered
wanted_headers = [{"user-agent", Pleroma.Application.user_agent()}]
@@ -164,10 +165,7 @@ defmodule Pleroma.ReverseProxyTest do
test "header is filtered", %{conn: conn} do
# Mock will fail if the accept-language header isn't filtered
- wanted_headers = [
- {"user-agent", Pleroma.Application.user_agent()},
- {"accept-encoding", "*"}
- ]
+ wanted_headers = [{"accept-encoding", "*"}]
Tesla.Mock.mock(fn %{url: "/headers", headers: ^wanted_headers} ->
%Tesla.Env{