Fix BookmarkFolderView, add test

Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
marcin mikołajczak 2024-03-20 13:21:45 +01:00
parent 0e4e20315b
commit 37ec645ff2
3 changed files with 25 additions and 14 deletions

View File

View File

@ -13,10 +13,8 @@ defmodule Pleroma.Web.PleromaAPI.BookmarkFolderView do
%{ %{
id: folder.id |> to_string(), id: folder.id |> to_string(),
name: folder.name, name: folder.name,
emoji: get_emoji(folder.emoji), emoji: folder.emoji,
source: %{ emoji_url: get_emoji_url(folder.emoji)
emoji: folder.emoji
}
} }
end end
@ -24,18 +22,18 @@ defmodule Pleroma.Web.PleromaAPI.BookmarkFolderView do
render_many(folders, __MODULE__, "show.json", Map.delete(opts, :folders)) render_many(folders, __MODULE__, "show.json", Map.delete(opts, :folders))
end end
defp get_emoji(nil) do defp get_emoji_url(nil) do
nil nil
end end
defp get_emoji(emoji) do defp get_emoji_url(emoji) do
if Emoji.unicode?(emoji) do if Emoji.unicode?(emoji) do
emoji nil
else else
emoji = Emoji.get(emoji) emoji = Emoji.get(emoji)
if emoji != nil do if emoji != nil do
Endpoint.url() |> URI.merge(emoji.relative_url) |> to_string() Endpoint.url() |> URI.merge(emoji.file) |> to_string()
else else
nil nil
end end

View File

@ -33,9 +33,7 @@ defmodule Pleroma.Web.PleromaAPI.BookmarkFolderControllerTest do
"id" => ^folder_id, "id" => ^folder_id,
"name" => "Bookmark folder", "name" => "Bookmark folder",
"emoji" => nil, "emoji" => nil,
"source" => %{ "emoji_url" => nil
"emoji" => nil
}
} }
] = result ] = result
end end
@ -57,9 +55,24 @@ defmodule Pleroma.Web.PleromaAPI.BookmarkFolderControllerTest do
assert %{ assert %{
"name" => "Bookmark folder", "name" => "Bookmark folder",
"emoji" => "📁", "emoji" => "📁",
"source" => %{ "emoji_url" => nil
"emoji" => "📁" } = 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 } = result
end end