|
- # Pleroma: A lightweight social networking server
- # Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
- # SPDX-License-Identifier: AGPL-3.0-only
-
- defmodule Pleroma.HTTPTest do
- use Pleroma.DataCase
- import Tesla.Mock
-
- setup do
- mock(fn
- %{
- method: :get,
- url: "http://example.com/hello",
- headers: [{"content-type", "application/json"}]
- } ->
- json(%{"my" => "data"})
-
- %{method: :get, url: "http://example.com/hello"} ->
- %Tesla.Env{status: 200, body: "hello"}
-
- %{method: :post, url: "http://example.com/world"} ->
- %Tesla.Env{status: 200, body: "world"}
- end)
-
- :ok
- end
-
- describe "get/1" do
- test "returns successfully result" do
- assert Pleroma.HTTP.get("http://example.com/hello") == {
- :ok,
- %Tesla.Env{status: 200, body: "hello"}
- }
- end
- end
-
- describe "get/2 (with headers)" do
- test "returns successfully result for json content-type" do
- assert Pleroma.HTTP.get("http://example.com/hello", [{"content-type", "application/json"}]) ==
- {
- :ok,
- %Tesla.Env{
- status: 200,
- body: "{\"my\":\"data\"}",
- headers: [{"content-type", "application/json"}]
- }
- }
- end
- end
-
- describe "post/2" do
- test "returns successfully result" do
- assert Pleroma.HTTP.post("http://example.com/world", "") == {
- :ok,
- %Tesla.Env{status: 200, body: "world"}
- }
- end
- end
- end
|