fix case when tags is invalid
This commit is contained in:
parent
d3ec09bb38
commit
ea72ac549b
|
@ -244,8 +244,10 @@ def render_content(object), do: object["content"] || ""
|
||||||
{"name": "nextcloud", "url": "/tag/nextcloud"}]
|
{"name": "nextcloud", "url": "/tag/nextcloud"}]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec build_tags(list(String.t())) :: list(map())
|
@spec build_tags(list(any())) :: list(map())
|
||||||
def build_tags(object_tags) when is_list(object_tags) do
|
def build_tags(object_tags) when is_list(object_tags) do
|
||||||
|
object_tags = for tag when is_binary(tag) <- object_tags, do: tag
|
||||||
|
|
||||||
Enum.reduce(object_tags, [], fn tag, tags ->
|
Enum.reduce(object_tags, [], fn tag, tags ->
|
||||||
tags ++ [%{name: tag, url: "/tag/#{tag}"}]
|
tags ++ [%{name: tag, url: "/tag/#{tag}"}]
|
||||||
end)
|
end)
|
||||||
|
|
|
@ -159,7 +159,18 @@ test "a reblog" do
|
||||||
|
|
||||||
describe "build_tags/1" do
|
describe "build_tags/1" do
|
||||||
test "it returns a a dictionary tags" do
|
test "it returns a a dictionary tags" do
|
||||||
assert StatusView.build_tags(["fediverse", "mastodon", "nextcloud"]) == [
|
object_tags = [
|
||||||
|
"fediverse",
|
||||||
|
"mastodon",
|
||||||
|
"nextcloud",
|
||||||
|
%{
|
||||||
|
"href" => "https://kawen.space/users/lain",
|
||||||
|
"name" => "@lain@kawen.space",
|
||||||
|
"type" => "Mention"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
assert StatusView.build_tags(object_tags) == [
|
||||||
%{name: "fediverse", url: "/tag/fediverse"},
|
%{name: "fediverse", url: "/tag/fediverse"},
|
||||||
%{name: "mastodon", url: "/tag/mastodon"},
|
%{name: "mastodon", url: "/tag/mastodon"},
|
||||||
%{name: "nextcloud", url: "/tag/nextcloud"}
|
%{name: "nextcloud", url: "/tag/nextcloud"}
|
||||||
|
|
Loading…
Reference in New Issue