:ok <- Containment.contain_origin_from_id(id, data) do
{:ok, data}
else
- {:ok, %{status: 410}} ->
+ {:ok, %{status: code}} when code in [404, 410] ->
{:error, "Object has been deleted"}
e ->
%{method: :get, url: "https://mastodon.example.org/users/userisgone"} ->
%Tesla.Env{status: 410}
+ %{method: :get, url: "https://mastodon.example.org/users/userisgone404"} ->
+ %Tesla.Env{status: 404}
+
env ->
apply(HttpRequestMock, :request, [env])
end)
"https://mastodon.example.org/users/userisgone"
)
end
+
+ test "handle HTTP 404 response" do
+ assert {:error, "Object has been deleted"} ==
+ Fetcher.fetch_and_contain_remote_object_from_id(
+ "https://mastodon.example.org/users/userisgone404"
+ )
+ end
end
describe "pruning" do