From 141ae835dfdd1300cbff40e98e0c3a78f44671ec Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Wed, 14 Feb 2024 21:34:31 +1300 Subject: [PATCH] add test for anchor tags --- m2d/converters/event-to-message.js | 2 +- m2d/converters/event-to-message.test.js | 29 ++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/m2d/converters/event-to-message.js b/m2d/converters/event-to-message.js index 9cd79bb..7c86cfa 100644 --- a/m2d/converters/event-to-message.js +++ b/m2d/converters/event-to-message.js @@ -126,10 +126,10 @@ turndownService.addRule("inlineLink", { if (node.getAttribute("data-message-id")) return `https://discord.com/channels/${node.getAttribute("data-guild-id")}/${node.getAttribute("data-channel-id")}/${node.getAttribute("data-message-id")}` if (node.getAttribute("data-channel-id")) return `<#${node.getAttribute("data-channel-id")}>` const href = node.getAttribute("href") - if (href === content) return href let brackets = ["", ""] content = content.replace(/ @.*/, "") if (href.startsWith("https://matrix.to")) brackets = ["<", ">"] + if (href === content) return brackets[0] + href + brackets[1] if (href.startsWith("https://matrix.to/#/@") && content[0] !== "@") content = "@" + content return "[" + content + "](" + brackets[0] + href + brackets[1] + ")" } diff --git a/m2d/converters/event-to-message.test.js b/m2d/converters/event-to-message.test.js index 2b354e0..33cbdd8 100644 --- a/m2d/converters/event-to-message.test.js +++ b/m2d/converters/event-to-message.test.js @@ -172,6 +172,33 @@ test("event2message: links in plaintext body are not broken", async t => { ) }) +test("event2message: links in formatted body where the text & href are the same, just post the link once", async t => { + t.deepEqual( + await eventToMessage({ + sender: "@cadence:cadence.moe", + type: "m.room.message", + content: { + body: "https://privatebin.net/?9111cb16f28da21b#62CKkEr6WvXZ1gQv2M6agazsA7tGYX8ZP8drETYujYZr", + format: "org.matrix.custom.html", + formatted_body: "https://privatebin.net/?9111cb16f28da21b#62CKkEr6WvXZ1gQv2M6agazsA7tGYX8ZP8drETYujYZr", + msgtype: "m.text" + }, + room_id: "!kLRqKKUQXcibIMtOpl:cadence.moe", + event_id: "$p3AOv1eReiSH0g06_8AZ0WH0qSeaGdqwHhiNx_hz-bs", + }), + { + ensureJoined: [], + messagesToDelete: [], + messagesToEdit: [], + messagesToSend: [{ + username: "cadence [they]", + content: "https://privatebin.net/?9111cb16f28da21b#62CKkEr6WvXZ1gQv2M6agazsA7tGYX8ZP8drETYujYZr", + avatar_url: undefined + }] + } + ) +}) + test("event2message: basic html is converted to markdown", async t => { t.deepEqual( await eventToMessage({ @@ -2664,7 +2691,7 @@ test("event2message: link to event in an unknown room", async t => { messagesToEdit: [], messagesToSend: [{ username: "cadence [they]", - content: "ah yeah, here's where the bug was reported: [https://matrix.to/#/!QtykxKocfZaZOUrTwp:matrix.org/$1542477546853947KGhZL:matrix.org]()", + content: "ah yeah, here's where the bug was reported: ", avatar_url: undefined }] }