turn inlineQuotePolicy on by default
[akkoma] / test / pleroma / web / activity_pub / builder_test.exs
index 3fe32bce5d24e3852500d1ec2257e4269d3f5d86..9269733b738a8d2aa80aaba823708af253e48b6c 100644 (file)
@@ -13,6 +13,7 @@ defmodule Pleroma.Web.ActivityPub.BuilderTest do
     test "returns note data" do
       user = insert(:user)
       note = insert(:note)
+      quote = insert(:note)
       user2 = insert(:user)
       user3 = insert(:user)
 
@@ -25,7 +26,8 @@ defmodule Pleroma.Web.ActivityPub.BuilderTest do
         tags: [name: "jimm"],
         summary: "test summary",
         cc: [user3.ap_id],
-        extra: %{"custom_tag" => "test"}
+        extra: %{"custom_tag" => "test"},
+        quote: quote
       }
 
       expected = %{
@@ -39,10 +41,68 @@ defmodule Pleroma.Web.ActivityPub.BuilderTest do
         "tag" => ["jimm"],
         "to" => [user2.ap_id],
         "type" => "Note",
-        "custom_tag" => "test"
+        "custom_tag" => "test",
+        "quoteUri" => quote.data["id"]
       }
 
       assert {:ok, ^expected, []} = Builder.note(draft)
     end
   end
+
+  describe "emoji_react/1" do
+    test "unicode emoji" do
+      user = insert(:user)
+      note = insert(:note)
+
+      assert {:ok, %{"content" => "👍", "type" => "EmojiReact"}, []} =
+               Builder.emoji_react(user, note, "👍")
+    end
+
+    test "custom emoji" do
+      user = insert(:user)
+      note = insert(:note)
+
+      assert {:ok,
+              %{
+                "content" => ":dinosaur:",
+                "type" => "EmojiReact",
+                "tag" => [
+                  %{
+                    "name" => ":dinosaur:",
+                    "id" => "http://localhost:4001/emoji/dino walking.gif",
+                    "icon" => %{
+                      "type" => "Image",
+                      "url" => "http://localhost:4001/emoji/dino walking.gif"
+                    }
+                  }
+                ]
+              }, []} = Builder.emoji_react(user, note, ":dinosaur:")
+    end
+
+    test "remote custom emoji" do
+      user = insert(:user)
+      other_user = insert(:user, local: false)
+
+      note =
+        insert(:note,
+          data: %{"reactions" => [["wow", [other_user.ap_id], "https://remote/emoji/wow"]]}
+        )
+
+      assert {:ok,
+              %{
+                "content" => ":wow:",
+                "type" => "EmojiReact",
+                "tag" => [
+                  %{
+                    "name" => ":wow:",
+                    "id" => "https://remote/emoji/wow",
+                    "icon" => %{
+                      "type" => "Image",
+                      "url" => "https://remote/emoji/wow"
+                    }
+                  }
+                ]
+              }, []} = Builder.emoji_react(user, note, ":wow@remote:")
+    end
+  end
 end