[#3213] Ignoring of blank elements from objects.data->tag.

This commit is contained in:
Ivan Tashkinov 2021-01-21 20:50:06 +03:00
parent c041e9c630
commit ca7f240643
2 changed files with 19 additions and 0 deletions

View file

@ -420,6 +420,8 @@ def object_data_hashtags(%{"tag" => tags}) when is_list(tags) do
hashtag when is_bitstring(hashtag) -> String.downcase(hashtag) hashtag when is_bitstring(hashtag) -> String.downcase(hashtag)
end) end)
|> Enum.uniq() |> Enum.uniq()
# Note: "" elements (plain text) might occur in `data.tag` for incoming objects
|> Enum.filter(&(&1 not in [nil, ""]))
end end
def object_data_hashtags(_), do: [] def object_data_hashtags(_), do: []

View file

@ -0,0 +1,17 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.HashtagTest do
use Pleroma.DataCase
alias Pleroma.Hashtag
describe "changeset validations" do
test "ensure non-blank :name" do
changeset = Hashtag.changeset(%Hashtag{}, %{name: ""})
assert {:name, {"can't be blank", [validation: :required]}} in changeset.errors
end
end
end