diff options
Diffstat (limited to 'test/pleroma/http_test.exs')
-rw-r--r-- | test/pleroma/http_test.exs | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/test/pleroma/http_test.exs b/test/pleroma/http_test.exs new file mode 100644 index 000000000..e6a6d31b3 --- /dev/null +++ b/test/pleroma/http_test.exs @@ -0,0 +1,70 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.HTTPTest do + use ExUnit.Case, async: true + use Pleroma.Tests.Helpers + import Tesla.Mock + alias Pleroma.HTTP + + setup do + mock(fn + %{ + method: :get, + url: "http://example.com/hello", + headers: [{"content-type", "application/json"}] + } -> + json(%{"my" => "data"}) + + %{method: :head, url: "http://example.com/hello"} -> + %Tesla.Env{status: 200, body: ""} + + %{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 "head/1" do + test "returns successfully result" do + assert HTTP.head("http://example.com/hello") == {:ok, %Tesla.Env{status: 200, body: ""}} + end + end + + describe "get/1" do + test "returns successfully result" do + assert 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 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 HTTP.post("http://example.com/world", "") == { + :ok, + %Tesla.Env{status: 200, body: "world"} + } + end + end +end |