diff --git a/config/test.exs b/config/test.exs index e259a9c65..6f6227c20 100644 --- a/config/test.exs +++ b/config/test.exs @@ -25,7 +25,6 @@ config :pleroma, :websub, Pleroma.Web.WebsubMock config :pleroma, :ostatus, Pleroma.Web.OStatusMock -config :pleroma, :httpoison, HTTPoisonMock config :tesla, adapter: Tesla.Mock try do diff --git a/lib/pleroma/http/connection.ex b/lib/pleroma/http/connection.ex index 12667b663..f64d4e18e 100644 --- a/lib/pleroma/http/connection.ex +++ b/lib/pleroma/http/connection.ex @@ -1,5 +1,6 @@ defmodule Pleroma.HTTP.Connection do @hackney_options [pool: :default] + @adapter Application.get_env(:tesla, :adapter) @doc """ Configure a client connection @@ -10,7 +11,7 @@ defmodule Pleroma.HTTP.Connection do """ @spec new(Keyword.t()) :: Tesla.Env.client() def new(opts \\ []) do - Tesla.client([], {Tesla.Adapter.Hackney, hackney_options(opts)}) + Tesla.client([], {@adapter, hackney_options(opts)}) end # fetch Hackney options diff --git a/test/web/websub/websub_test.exs b/test/web/websub/websub_test.exs index da7bc9112..0b8bfda2d 100644 --- a/test/web/websub/websub_test.exs +++ b/test/web/websub/websub_test.exs @@ -10,6 +10,18 @@ defmodule Pleroma.Web.WebsubTest do alias Pleroma.Web.Websub.{WebsubServerSubscription, WebsubClientSubscription} import Pleroma.Factory alias Pleroma.Web.Router.Helpers + import Tesla.Mock + + setup do + mock fn + %{method: :get, url: "https://mastodon.social/users/lambadalambda.atom"} -> + %Tesla.Env{status: 200, body: File.read!("test/fixtures/lambadalambda.atom")} + %{method: :post, url: "http://example.org/needs_refresh"} -> + %Tesla.Env{status: 200, body: ""} + end + + :ok + end test "a verification of a request that is accepted" do sub = insert(:websub_subscription) @@ -26,8 +38,8 @@ test "a verification of a request that is accepted" do assert String.to_integer(seconds) > 0 {:ok, - %HTTPoison.Response{ - status_code: 200, + %Tesla.Env{ + status: 200, body: challenge }} end @@ -41,8 +53,8 @@ test "a verification of a request that doesn't return 200" do getter = fn _path, _headers, _options -> {:ok, - %HTTPoison.Response{ - status_code: 500, + %Tesla.Env{ + status: 500, body: "" }} end @@ -113,12 +125,7 @@ test "initiate a subscription for a given user and topic" do test "discovers the hub and canonical url" do topic = "https://mastodon.social/users/lambadalambda.atom" - getter = fn ^topic -> - doc = File.read!("test/fixtures/lambadalambda.atom") - {:ok, %{status_code: 200, body: doc}} - end - - {:ok, discovered} = Websub.gather_feed_data(topic, getter) + {:ok, discovered} = Websub.gather_feed_data(topic) expected = %{ "hub" => "https://mastodon.social/api/push", @@ -158,7 +165,7 @@ test "calls the hub, requests topic" do websub.id ) - {:ok, %{status_code: 202}} + {:ok, %{status: 202}} end task = Task.async(fn -> Websub.request_subscription(websub, poster) end) @@ -209,6 +216,7 @@ test "it renews subscriptions that have less than a day of time left" do insert(:websub_client_subscription, %{ valid_until: NaiveDateTime.add(now, 2 * day), topic: "http://example.org/still_good", + hub: "http://example.org/still_good", state: "accepted" }) @@ -216,6 +224,7 @@ test "it renews subscriptions that have less than a day of time left" do insert(:websub_client_subscription, %{ valid_until: NaiveDateTime.add(now, day - 100), topic: "http://example.org/needs_refresh", + hub: "http://example.org/needs_refresh", state: "accepted" })