From 37ec645ff2341879c5baf4ad4abe89af0b8195fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?marcin=20miko=C5=82ajczak?= Date: Wed, 20 Mar 2024 13:21:45 +0100 Subject: [PATCH] Fix BookmarkFolderView, add test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: marcin mikołajczak --- changelog.d/bookmark-folders.skip | 0 .../pleroma_api/views/bookmark_folder_view.ex | 14 +++++------ .../bookmark_folder_controller_test.ex | 25 ++++++++++++++----- 3 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 changelog.d/bookmark-folders.skip diff --git a/changelog.d/bookmark-folders.skip b/changelog.d/bookmark-folders.skip new file mode 100644 index 000000000..e69de29bb diff --git a/lib/pleroma/web/pleroma_api/views/bookmark_folder_view.ex b/lib/pleroma/web/pleroma_api/views/bookmark_folder_view.ex index fc6ad59d0..12decb816 100644 --- a/lib/pleroma/web/pleroma_api/views/bookmark_folder_view.ex +++ b/lib/pleroma/web/pleroma_api/views/bookmark_folder_view.ex @@ -13,10 +13,8 @@ defmodule Pleroma.Web.PleromaAPI.BookmarkFolderView do %{ id: folder.id |> to_string(), name: folder.name, - emoji: get_emoji(folder.emoji), - source: %{ - emoji: folder.emoji - } + emoji: folder.emoji, + emoji_url: get_emoji_url(folder.emoji) } end @@ -24,18 +22,18 @@ defmodule Pleroma.Web.PleromaAPI.BookmarkFolderView do render_many(folders, __MODULE__, "show.json", Map.delete(opts, :folders)) end - defp get_emoji(nil) do + defp get_emoji_url(nil) do nil end - defp get_emoji(emoji) do + defp get_emoji_url(emoji) do if Emoji.unicode?(emoji) do - emoji + nil else emoji = Emoji.get(emoji) if emoji != nil do - Endpoint.url() |> URI.merge(emoji.relative_url) |> to_string() + Endpoint.url() |> URI.merge(emoji.file) |> to_string() else nil end diff --git a/test/pleroma/web/pleroma_api/controllers/bookmark_folder_controller_test.ex b/test/pleroma/web/pleroma_api/controllers/bookmark_folder_controller_test.ex index 71b850859..9bd90ed2e 100644 --- a/test/pleroma/web/pleroma_api/controllers/bookmark_folder_controller_test.ex +++ b/test/pleroma/web/pleroma_api/controllers/bookmark_folder_controller_test.ex @@ -33,9 +33,7 @@ defmodule Pleroma.Web.PleromaAPI.BookmarkFolderControllerTest do "id" => ^folder_id, "name" => "Bookmark folder", "emoji" => nil, - "source" => %{ - "emoji" => nil - } + "emoji_url" => nil } ] = result end @@ -57,9 +55,24 @@ defmodule Pleroma.Web.PleromaAPI.BookmarkFolderControllerTest do assert %{ "name" => "Bookmark folder", "emoji" => "📁", - "source" => %{ - "emoji" => "📁" - } + "emoji_url" => nil + } = result + end + + test "it creates a bookmark folder with custom emoji", %{conn: conn} do + result = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/bookmark_folders", %{ + name: "Bookmark folder", + emoji: ":firefox:" + }) + |> json_response_and_validate_schema(200) + + assert %{ + "name" => "Bookmark folder", + "emoji" => ":firefox:", + "emoji_url" => "http://localhost:4001/emoji/Firefox.gif" } = result end