WebSub fix test
authorMaksim Pechnikov <parallel588@gmail.com>
Sun, 2 Dec 2018 13:58:38 +0000 (16:58 +0300)
committerMaksim Pechnikov <parallel588@gmail.com>
Tue, 4 Dec 2018 11:03:32 +0000 (14:03 +0300)
config/test.exs
lib/pleroma/http/connection.ex
test/web/websub/websub_test.exs

index e259a9c65bf52fa182ebdc51b03e97f23706d116..6f6227c20a2d8e13060162e08b463c4a2a025c26 100644 (file)
@@ -25,7 +25,6 @@ config :pbkdf2_elixir, rounds: 1
 
 config :pleroma, :websub, Pleroma.Web.WebsubMock
 config :pleroma, :ostatus, Pleroma.Web.OStatusMock
-config :pleroma, :httpoison, HTTPoisonMock
 config :tesla, adapter: Tesla.Mock
 
 try do
index 12667b6634a8699bb5ca5e18752b25a4dc8c1843..f64d4e18e2f35750cbfbc1baed4a3a512e2050b4 100644 (file)
@@ -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
index da7bc9112ec8131bf18c1911f2832da4faeca1a6..0b8bfda2d1159916cc4669b8231e147748f829c6 100644 (file)
@@ -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 @@ defmodule Pleroma.Web.WebsubTest do
       assert String.to_integer(seconds) > 0
 
       {:ok,
-       %HTTPoison.Response{
-         status_code: 200,
+       %Tesla.Env{
+         status: 200,
          body: challenge
        }}
     end
@@ -41,8 +53,8 @@ defmodule Pleroma.Web.WebsubTest do
 
     getter = fn _path, _headers, _options ->
       {:ok,
-       %HTTPoison.Response{
-         status_code: 500,
+       %Tesla.Env{
+         status: 500,
          body: ""
        }}
     end
@@ -113,12 +125,7 @@ defmodule Pleroma.Web.WebsubTest 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 @@ defmodule Pleroma.Web.WebsubTest 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 @@ defmodule Pleroma.Web.WebsubTest 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 @@ defmodule Pleroma.Web.WebsubTest 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"
         })