distraction.party/test/web/media_proxy/invalidations/http_test.exs

40 lines
1.2 KiB
Elixir
Raw Normal View History

2020-05-18 06:22:26 +00:00
defmodule Pleroma.Web.MediaProxy.Invalidation.HttpTest do
use ExUnit.Case
alias Pleroma.Web.MediaProxy.Invalidation
import ExUnit.CaptureLog
import Tesla.Mock
2020-06-14 18:02:57 +00:00
setup do
2020-06-18 02:02:33 +00:00
on_exit(fn -> Cachex.clear(:banned_urls_cache) end)
2020-06-14 18:02:57 +00:00
end
2020-05-18 06:22:26 +00:00
test "logs hasn't error message when request is valid" do
mock(fn
%{method: :purge, url: "http://example.com/media/example.jpg"} ->
%Tesla.Env{status: 200}
end)
refute capture_log(fn ->
assert Invalidation.Http.purge(
["http://example.com/media/example.jpg"],
2020-06-14 18:02:57 +00:00
[]
) == {:ok, ["http://example.com/media/example.jpg"]}
2020-05-18 06:22:26 +00:00
end) =~ "Error while cache purge"
end
test "it write error message in logs when request invalid" do
mock(fn
%{method: :purge, url: "http://example.com/media/example1.jpg"} ->
%Tesla.Env{status: 404}
end)
assert capture_log(fn ->
assert Invalidation.Http.purge(
["http://example.com/media/example1.jpg"],
2020-06-14 18:02:57 +00:00
[]
) == {:ok, ["http://example.com/media/example1.jpg"]}
2020-05-18 06:22:26 +00:00
end) =~ "Error while cache purge: url - http://example.com/media/example1.jpg"
end
end