add test
authorMaksim Pechnikov <parallel588@gmail.com>
Tue, 4 Dec 2018 16:43:00 +0000 (19:43 +0300)
committerMaksim Pechnikov <parallel588@gmail.com>
Tue, 4 Dec 2018 17:37:13 +0000 (20:37 +0300)
test/http_test.exs [new file with mode: 0644]

diff --git a/test/http_test.exs b/test/http_test.exs
new file mode 100644 (file)
index 0000000..62f3ccb
--- /dev/null
@@ -0,0 +1,55 @@
+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