From 75414678c85441cda41af86630769ebe002eac0f Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Thu, 17 Aug 2023 12:35:34 +1200 Subject: [PATCH] test for editing a new caption onto an image --- d2m/actions/edit-message.js | 2 +- d2m/converters/edit-to-changes.js | 9 +- d2m/converters/edit-to-changes.test.js | 45 ++++++- db/ooye.db | Bin 360448 -> 360448 bytes test/data.js | 156 +++++++++++++++++++++++++ 5 files changed, 202 insertions(+), 10 deletions(-) diff --git a/d2m/actions/edit-message.js b/d2m/actions/edit-message.js index 933267c..6823602 100644 --- a/d2m/actions/edit-message.js +++ b/d2m/actions/edit-message.js @@ -9,7 +9,7 @@ async function editMessage() { // 3. Send all the things. // old code lies here - let eventPart = 0 // TODO: what to do about eventPart when editing? probably just need to make sure that exactly 1 value of '1' remains in the database? + let eventPart = 0 // TODO: what to do about eventPart when editing? probably just need to make sure that exactly 1 value of '0' remains in the database? for (const event of events) { const eventType = event.$type /** @type {Pick> & { $type?: string }} */ diff --git a/d2m/converters/edit-to-changes.js b/d2m/converters/edit-to-changes.js index 4afa3ce..f055c90 100644 --- a/d2m/converters/edit-to-changes.js +++ b/d2m/converters/edit-to-changes.js @@ -6,8 +6,6 @@ const passthrough = require("../../passthrough") const { discord, sync, db } = passthrough /** @type {import("./message-to-event")} */ const messageToEvent = sync.require("../converters/message-to-event") -/** @type {import("../../matrix/api")} */ -const api = sync.require("../../matrix/api") /** @type {import("../actions/register-user")} */ const registerUser = sync.require("../actions/register-user") /** @type {import("../actions/create-room")} */ @@ -18,8 +16,9 @@ const createRoom = sync.require("../actions/create-room") * IMPORTANT: This may not have all the normal fields! The API documentation doesn't provide possible types, just says it's all optional! * Since I don't have a spec, I will have to capture some real traffic and add it as test cases... I hope they don't change anything later... * @param {import("discord-api-types/v10").APIGuild} guild + * @param {import("../../matrix/api")} api simple-as-nails dependency injection for the matrix API */ -async function editToChanges(message, guild) { +async function editToChanges(message, guild, api) { // Figure out what events we will be replacing const roomID = db.prepare("SELECT room_id FROM channel_room WHERE channel_id = ?").pluck().get(message.channel_id) @@ -76,7 +75,7 @@ async function editToChanges(message, guild) { } } // If we got this far, we could not pair it to an existing event, so it'll have to be a new one - eventsToSend.push(newe) + eventsToSend.push(newInnerContent[0]) shift() } // Anything remaining in oldEventRows is present in the old version only and should be redacted. @@ -102,7 +101,7 @@ async function editToChanges(message, guild) { eventsToRedact = eventsToRedact.map(e => e.event_id) eventsToReplace = eventsToReplace.map(e => ({oldID: e.old.event_id, new: eventToReplacementEvent(e.old.event_id, e.newFallbackContent, e.newInnerContent)})) - return {eventsToReplace, eventsToRedact, eventsToSend} + return {eventsToReplace, eventsToRedact, eventsToSend, senderMxid} } /** diff --git a/d2m/converters/edit-to-changes.test.js b/d2m/converters/edit-to-changes.test.js index f6ecc8d..8385cd0 100644 --- a/d2m/converters/edit-to-changes.test.js +++ b/d2m/converters/edit-to-changes.test.js @@ -1,12 +1,30 @@ -// @ts-check - const {test} = require("supertape") const {editToChanges} = require("./edit-to-changes") const data = require("../../test/data") const Ty = require("../../types") test("edit2changes: bot response", async t => { - const {eventsToRedact, eventsToReplace, eventsToSend} = await editToChanges(data.message_update.bot_response, data.guild.general) + const {eventsToRedact, eventsToReplace, eventsToSend} = await editToChanges(data.message_update.bot_response, data.guild.general, { + async getJoinedMembers(roomID) { + t.equal(roomID, "!uCtjHhfGlYbVnPVlkG:cadence.moe") + return new Promise(resolve => { + setTimeout(() => { + resolve({ + joined: { + "@cadence:cadence.moe": { + display_name: "cadence [they]", + avatar_url: "whatever" + }, + "@_ooye_botrac4r:cadence.moe": { + display_name: "botrac4r", + avatar_url: "whatever" + } + } + }) + }) + }) + } + }) t.deepEqual(eventsToRedact, []) t.deepEqual(eventsToSend, []) t.deepEqual(eventsToReplace, [{ @@ -39,8 +57,27 @@ test("edit2changes: bot response", async t => { }]) }) +test("edit2changes: remove caption from image", async t => { + const {eventsToRedact, eventsToReplace, eventsToSend} = await editToChanges(data.message_update.removed_caption_from_image, data.guild.general, {}) + t.deepEqual(eventsToRedact, ["$mtR8cJqM4fKno1bVsm8F4wUVqSntt2sq6jav1lyavuA"]) + t.deepEqual(eventsToSend, []) + t.deepEqual(eventsToReplace, []) +}) + +test("edit2changes: add caption back to that image", async t => { + const {eventsToRedact, eventsToReplace, eventsToSend} = await editToChanges(data.message_update.added_caption_to_image, data.guild.general, {}) + t.deepEqual(eventsToRedact, []) + t.deepEqual(eventsToSend, [{ + $type: "m.room.message", + msgtype: "m.text", + body: "some text", + "m.mentions": {} + }]) + t.deepEqual(eventsToReplace, []) +}) + test("edit2changes: edit of reply to skull webp attachment with content", async t => { - const {eventsToRedact, eventsToReplace, eventsToSend} = await editToChanges(data.message_update.edit_of_reply_to_skull_webp_attachment_with_content, data.guild.general) + const {eventsToRedact, eventsToReplace, eventsToSend} = await editToChanges(data.message_update.edit_of_reply_to_skull_webp_attachment_with_content, data.guild.general, {}) t.deepEqual(eventsToRedact, []) t.deepEqual(eventsToSend, []) t.deepEqual(eventsToReplace, [{ diff --git a/db/ooye.db b/db/ooye.db index a916aee82643b6a8873edfde0eaf2fe46c59b001..56b1c29cbc6ff0cfe587c1443c6ab74d0ad26249 100644 GIT binary patch delta 31509 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 diff --git a/test/data.js b/test/data.js index e23d42f..bb2570b 100644 --- a/test/data.js +++ b/test/data.js @@ -867,6 +867,162 @@ module.exports = { tts: false, type: 0 }, + removed_caption_from_image: { + attachments: [ + { + content_type: "image/png", + filename: "piper_2.png", + height: 163, + id: "1141501302497615912", + proxy_url: "https://media.discordapp.net/attachments/112760669178241024/1141501302497615912/piper_2.png", + size: 43231, + url: "https://cdn.discordapp.com/attachments/112760669178241024/1141501302497615912/piper_2.png", + width: 188 + } + ], + author: { + avatar: "47db1be7ab77e1d812a4573177af0692", + avatar_decoration: null, + discriminator: "0", + global_name: "wing", + id: "112890272819507200", + public_flags: 0, + username: ".wing." + }, + channel_id: "112760669178241024", + components: [], + content: "", + edited_timestamp: "2023-08-16T22:38:43.075298+00:00", + embeds: [], + flags: 0, + guild_id: "112760669178241024", + id: "1141501302736695316", + member: { + avatar: null, + communication_disabled_until: null, + deaf: false, + flags: 0, + joined_at: "2015-11-08T12:25:38.461000+00:00", + mute: false, + nick: "windfucker", + pending: false, + premium_since: null, + roles: [ + "204427286542417920", + "118924814567211009", + "222168467627835392", + "265239342648131584", + "303273332248412160", + "303319030163439616", + "305775031223320577", + "318243902521868288", + "349185088157777920", + "378402925128712193", + "391076926573510656", + "230462991751970827", + "392141548932038658", + "397533096012152832", + "454567553738473472", + "482658335536185357", + "482860581670486028", + "495384759074160642", + "638988388740890635", + "764071315388629012", + "373336013109461013", + "872274377150980116", + "1034022405275910164", + "790724320824655873", + "1040735082610167858", + "1123730787653660742", + "1070177137367208036" + ] + }, + mention_everyone: false, + mention_roles: [], + mentions: [], + pinned: false, + timestamp: "2023-08-16T22:38:38.641000+00:00", + tts: false, + type: 0 + }, + added_caption_to_image: { + attachments: [ + { + content_type: "image/png", + filename: "piper_2.png", + height: 163, + id: "1141501302497615912", + proxy_url: "https://media.discordapp.net/attachments/112760669178241024/1141501302497615912/piper_2.png", + size: 43231, + url: "https://cdn.discordapp.com/attachments/112760669178241024/1141501302497615912/piper_2.png", + width: 188 + } + ], + author: { + avatar: "47db1be7ab77e1d812a4573177af0692", + avatar_decoration: null, + discriminator: "0", + global_name: "wing", + id: "112890272819507200", + public_flags: 0, + username: ".wing." + }, + channel_id: "112760669178241024", + components: [], + content: "some text", + edited_timestamp: "2023-08-17T00:13:18.620975+00:00", + embeds: [], + flags: 0, + guild_id: "112760669178241024", + id: "1141501302736695317", + member: { + avatar: null, + communication_disabled_until: null, + deaf: false, + flags: 0, + joined_at: "2015-11-08T12:25:38.461000+00:00", + mute: false, + nick: "windfucker", + pending: false, + premium_since: null, + roles: [ + "204427286542417920", + "118924814567211009", + "222168467627835392", + "265239342648131584", + "303273332248412160", + "303319030163439616", + "305775031223320577", + "318243902521868288", + "349185088157777920", + "378402925128712193", + "391076926573510656", + "230462991751970827", + "392141548932038658", + "397533096012152832", + "454567553738473472", + "482658335536185357", + "482860581670486028", + "495384759074160642", + "638988388740890635", + "764071315388629012", + "373336013109461013", + "872274377150980116", + "1034022405275910164", + "790724320824655873", + "1040735082610167858", + "1123730787653660742", + "1070177137367208036" + ] + }, + mention_everyone: false, + mention_roles: [], + mentions: [], + pinned: false, + timestamp: "2023-08-16T22:38:38.641000+00:00", + tts: false, + type: 0 + }, edit_of_reply_to_skull_webp_attachment_with_content: { type: 19, tts: false,