Browse Source

Make WebPushEncryption use Pleroma.HTTP as an HTTP adapter

merge-requests/3010/head
Sergey Suprunenko 3 years ago
parent
commit
226fa3e486
No known key found for this signature in database GPG Key ID: 5DCA7D1BE3914F9C
2 changed files with 20 additions and 0 deletions
  1. +2
    -0
      config/config.exs
  2. +18
    -0
      test/web/push/impl_test.exs

+ 2
- 0
config/config.exs View File

@@ -787,6 +787,8 @@ config :tzdata, :http_client, Pleroma.HTTP.Tzdata

config :ex_aws, http_client: Pleroma.HTTP.ExAws

config :web_push_encryption, http_client: Pleroma.HTTP

config :pleroma, :instances_favicons, enabled: false

config :floki, :html_parser, Floki.HTMLParser.FastHtml


+ 18
- 0
test/web/push/impl_test.exs View File

@@ -12,7 +12,9 @@ defmodule Pleroma.Web.Push.ImplTest do
alias Pleroma.Web.CommonAPI
alias Pleroma.Web.Push.Impl
alias Pleroma.Web.Push.Subscription
alias Pleroma.Web.WebPushHttpClientMock

import Mock
import Pleroma.Factory

setup do
@@ -78,6 +80,22 @@ defmodule Pleroma.Web.Push.ImplTest do
assert Impl.push_message(@message, @sub, @api_key, %Subscription{}) == :ok
end

test_with_mock "uses WebPushHttpClientMock as an HTTP client", WebPushHttpClientMock,
post: fn _, _, _ -> {:ok, %{status_code: 200}} end do
Impl.push_message(@message, @sub, @api_key, %Subscription{})
assert_called(WebPushHttpClientMock.post("https://example.com/example/1234", :_, :_))
end

test_with_mock "uses Pleroma.HTTP as an HTTP client", Pleroma.HTTP,
post: fn _, _, _ -> {:ok, %{status_code: 200}} end do
client = Application.get_env(:web_push_encryption, :http_client)
on_exit(fn -> Application.put_env(:web_push_encryption, :http_client, client) end)
Application.put_env(:web_push_encryption, :http_client, Pleroma.HTTP)

Impl.push_message(@message, @sub, @api_key, %Subscription{})
assert_called(Pleroma.HTTP.post("https://example.com/example/1234", :_, :_))
end

@tag capture_log: true
test "fail message sending" do
assert Impl.push_message(


Loading…
Cancel
Save