A feature for shareable emoji packs, use it in download_from & tests
[akkoma] / test / web / emoji_api_controller_test.exs
index 7942a7b017a53dc960282a88f6329679c3e90f25..1af4d3720e88f40565a3cd7fbfb99c5a8ce667b2 100644 (file)
@@ -1,4 +1,4 @@
-defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do
+defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do
   use Pleroma.Web.ConnCase
 
   import Tesla.Mock
@@ -54,6 +54,12 @@ defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do
     end)
 
     mock(fn
+      %{method: :get, url: "https://old-instance/nodeinfo/2.1.json"} ->
+        json(%{features: []})
+
+      %{method: :get, url: "https://example.com/nodeinfo/2.1.json"} ->
+        json(%{features: ["shareable_emoji_packs"]})
+
       %{
         method: :get,
         url: "https://example.com/api/pleroma/emoji/packs/list"
@@ -87,6 +93,22 @@ defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do
 
     conn = build_conn() |> assign(:user, admin)
 
+    assert (conn
+            |> put_req_header("content-type", "application/json")
+            |> post(
+              emoji_api_path(
+                conn,
+                :download_from
+              ),
+              %{
+                instance_address: "https://old-instance",
+                pack_name: "test_pack",
+                as: "test_pack2"
+              }
+              |> Jason.encode!()
+            )
+            |> json_response(500))["error"] =~ "does not support"
+
     assert conn
            |> put_req_header("content-type", "application/json")
            |> post(
@@ -343,7 +365,7 @@ defmodule Pleroma.Web.EmojiAPI.EmojiAPIControllerTest do
 
     assert conn
            |> put_req_header("content-type", "application/json")
-           |> post(
+           |> put(
              emoji_api_path(
                conn,
                :create,