TagValidator: Drop unrecognized tags
This commit is contained in:
parent
45646ff52c
commit
5cfb0578a6
3 changed files with 12 additions and 6 deletions
|
@ -68,8 +68,11 @@ def changeset(struct, %{"type" => "Emoji"} = data) do
|
|||
|> validate_required([:type, :name, :icon])
|
||||
end
|
||||
|
||||
# Fallback
|
||||
def changeset(struct, data), do: cast(struct, data, [:type, :name])
|
||||
def changeset(struct, %{"type" => _} = data) do
|
||||
struct
|
||||
|> cast(data, [])
|
||||
|> Map.put(:action, :ignore)
|
||||
end
|
||||
|
||||
def icon_changeset(struct, data) do
|
||||
struct
|
||||
|
|
5
test/fixtures/fep-e232.json
vendored
5
test/fixtures/fep-e232.json
vendored
|
@ -9,6 +9,11 @@
|
|||
"content": "<p>test <a href=\"https://example.org/objects/9\">https://example.org/objects/9</a></p>",
|
||||
"published": "2022-10-01T21:30:05.211215Z",
|
||||
"tag": [
|
||||
{
|
||||
"name": "@bob@example.net",
|
||||
"type": "Mention",
|
||||
"href": "https://example.net/users/bob"
|
||||
},
|
||||
{
|
||||
"name": "https://example.org/objects/9",
|
||||
"type": "Link",
|
||||
|
|
|
@ -124,8 +124,7 @@ test "it fixes both the Create and object contexts in a reply" do
|
|||
assert activity.data["context"] == object.data["context"]
|
||||
end
|
||||
|
||||
# https://codeberg.org/fediverse/fep/src/branch/main/feps/fep-e232.md
|
||||
test "it accepts FEP-e232 link tags" do
|
||||
test "it drops link tags" do
|
||||
insert(:user, ap_id: "https://example.org/users/alice")
|
||||
|
||||
message = File.read!("test/fixtures/fep-e232.json") |> Jason.decode!()
|
||||
|
@ -136,8 +135,7 @@ test "it accepts FEP-e232 link tags" do
|
|||
assert length(object.data["tag"]) == 1
|
||||
|
||||
tag = object.data["tag"] |> List.first()
|
||||
assert tag["type"] == "Link"
|
||||
assert tag["name"] == "https://example.org/objects/9"
|
||||
assert tag["type"] == "Mention"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue