Resolve follow activity from accept/reject without ID (#328)
[akkoma] / test / pleroma / http / adapter_helper_test.exs
index 3c8c8916446a73cac7b1e78bc18195e46503c5e6..ba09f3422ba07095994b3108c583cc9f53ce50a6 100644 (file)
@@ -3,8 +3,7 @@
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.HTTP.AdapterHelperTest do
-  use ExUnit.Case, async: true
-
+  use Pleroma.DataCase, async: true
   alias Pleroma.HTTP.AdapterHelper
 
   describe "format_proxy/1" do
@@ -13,16 +12,58 @@ defmodule Pleroma.HTTP.AdapterHelperTest do
     end
 
     test "with string" do
-      assert AdapterHelper.format_proxy("127.0.0.1:8123") == {{127, 0, 0, 1}, 8123}
+      assert AdapterHelper.format_proxy("http://127.0.0.1:8123") == {:http, "127.0.0.1", 8123, []}
     end
 
     test "localhost with port" do
-      assert AdapterHelper.format_proxy("localhost:8123") == {'localhost', 8123}
+      assert AdapterHelper.format_proxy("https://localhost:8123") ==
+               {:https, "localhost", 8123, []}
     end
 
     test "tuple" do
-      assert AdapterHelper.format_proxy({:socks4, :localhost, 9050}) ==
-               {:socks4, 'localhost', 9050}
+      assert AdapterHelper.format_proxy({:http, "localhost", 9050}) ==
+               {:http, "localhost", 9050, []}
+    end
+  end
+
+  describe "maybe_add_proxy_pool/1" do
+    test "should do nothing with nil" do
+      assert AdapterHelper.maybe_add_proxy_pool([], nil) == []
+    end
+
+    test "should create pools" do
+      assert AdapterHelper.maybe_add_proxy_pool([], "proxy") == [
+               pools: %{default: [conn_opts: [proxy: "proxy"]]}
+             ]
+    end
+
+    test "should not override conn_opts if set" do
+      assert AdapterHelper.maybe_add_proxy_pool(
+               [pools: %{default: [conn_opts: [already: "set"]]}],
+               "proxy"
+             ) == [
+               pools: %{default: [conn_opts: [proxy: "proxy", already: "set"]]}
+             ]
+    end
+  end
+
+  describe "timeout settings" do
+    test "should default to 5000/15000" do
+      options = AdapterHelper.options(%URI{host: 'somewhere'})
+      assert options[:pool_timeout] == 5000
+      assert options[:receive_timeout] == 15_000
+    end
+
+    test "pool_timeout should be overridden by :http, :pool_timeout" do
+      clear_config([:http, :pool_timeout], 10_000)
+      options = AdapterHelper.options(%URI{host: 'somewhere'})
+      assert options[:pool_timeout] == 10_000
+    end
+
+    test "receive_timeout should be overridden by :http, :receive_timeout" do
+      clear_config([:http, :receive_timeout], 20_000)
+      options = AdapterHelper.options(%URI{host: 'somewhere'})
+      assert options[:receive_timeout] == 20_000
     end
   end
 end