Bring back :send_user_agent for test env only.
Too many tests break as they don't include injected user agent in expected response
This commit is contained in:
parent
fd80b75444
commit
e173bce339
|
@ -96,6 +96,8 @@ config :pleroma, :rate_limit, %{}
|
||||||
|
|
||||||
config :pleroma, :http_security, report_uri: "https://endpoint.com"
|
config :pleroma, :http_security, report_uri: "https://endpoint.com"
|
||||||
|
|
||||||
|
config :pleroma, :http, send_user_agent: false
|
||||||
|
|
||||||
rum_enabled = System.get_env("RUM_ENABLED") == "true"
|
rum_enabled = System.get_env("RUM_ENABLED") == "true"
|
||||||
config :pleroma, :database, rum_enabled: rum_enabled
|
config :pleroma, :database, rum_enabled: rum_enabled
|
||||||
IO.puts("RUM enabled: #{rum_enabled}")
|
IO.puts("RUM enabled: #{rum_enabled}")
|
||||||
|
|
|
@ -10,6 +10,8 @@ defmodule Pleroma.HTTP.RequestBuilder do
|
||||||
alias Pleroma.HTTP.Request
|
alias Pleroma.HTTP.Request
|
||||||
alias Tesla.Multipart
|
alias Tesla.Multipart
|
||||||
|
|
||||||
|
@mix_env Mix.env()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Creates new request
|
Creates new request
|
||||||
"""
|
"""
|
||||||
|
@ -33,13 +35,7 @@ defmodule Pleroma.HTTP.RequestBuilder do
|
||||||
"""
|
"""
|
||||||
@spec headers(Request.t(), Request.headers()) :: Request.t()
|
@spec headers(Request.t(), Request.headers()) :: Request.t()
|
||||||
def headers(request, headers) do
|
def headers(request, headers) do
|
||||||
headers_list =
|
headers_list = maybe_add_user_agent(headers, @mix_env)
|
||||||
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
|
|
||||||
|
|
||||||
%{request | headers: headers_list}
|
%{request | headers: headers_list}
|
||||||
end
|
end
|
||||||
|
@ -91,4 +87,16 @@ defmodule Pleroma.HTTP.RequestBuilder do
|
||||||
|> Map.from_struct()
|
|> Map.from_struct()
|
||||||
|> Enum.into([])
|
|> Enum.into([])
|
||||||
end
|
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
|
end
|
||||||
|
|
|
@ -27,6 +27,7 @@ defmodule Pleroma.ReverseProxyTest do
|
||||||
end
|
end
|
||||||
|
|
||||||
test "use Pleroma's user agent in the request; don't pass the client's", %{conn: conn} do
|
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
|
# Mock will fail if the client's user agent isn't filtered
|
||||||
wanted_headers = [{"user-agent", Pleroma.Application.user_agent()}]
|
wanted_headers = [{"user-agent", Pleroma.Application.user_agent()}]
|
||||||
|
|
||||||
|
@ -164,10 +165,7 @@ defmodule Pleroma.ReverseProxyTest do
|
||||||
|
|
||||||
test "header is filtered", %{conn: conn} do
|
test "header is filtered", %{conn: conn} do
|
||||||
# Mock will fail if the accept-language header isn't filtered
|
# Mock will fail if the accept-language header isn't filtered
|
||||||
wanted_headers = [
|
wanted_headers = [{"accept-encoding", "*"}]
|
||||||
{"user-agent", Pleroma.Application.user_agent()},
|
|
||||||
{"accept-encoding", "*"}
|
|
||||||
]
|
|
||||||
|
|
||||||
Tesla.Mock.mock(fn %{url: "/headers", headers: ^wanted_headers} ->
|
Tesla.Mock.mock(fn %{url: "/headers", headers: ^wanted_headers} ->
|
||||||
%Tesla.Env{
|
%Tesla.Env{
|
||||||
|
|
Loading…
Reference in New Issue