From d948334713dc0857c28ec680f935e16e293bb73a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sun, 2 Mar 2025 21:35:48 -0500 Subject: [PATCH] fix: #13224, handle note attributedTo when it is of type object --- src/activitypub/mocks.js | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/activitypub/mocks.js b/src/activitypub/mocks.js index 3164fd85e1..2f7b157d2b 100644 --- a/src/activitypub/mocks.js +++ b/src/activitypub/mocks.js @@ -170,21 +170,28 @@ Mocks.post = async (objects) => { type, to, cc, audience, attachment, tag, image, } = object; - if (Array.isArray(uid)) { // Handle array attributedTo - uid = uid.reduce((valid, cur) => { - if (typeof cur === 'string') { - valid.push(cur); - } else if (typeof cur === 'object') { - if (cur.type === 'Person' && cur.id) { - valid.push(cur.id); + switch (true) { // non-string attributedTo handling + case Array.isArray(uid): { + uid = uid.reduce((valid, cur) => { + if (typeof cur === 'string') { + valid.push(cur); + } else if (typeof cur === 'object') { + if (cur.type === 'Person' && cur.id) { + valid.push(cur.id); + } } - } - return valid; - }, []); - uid = uid.shift(); // take first valid uid - await activitypub.actors.assert(uid); + return valid; + }, []); + uid = uid.shift(); // take first valid uid + break; + } + + case typeof uid === 'object' && uid.hasOwnProperty('id'): { + uid = uid.id; + } } + await activitypub.actors.assert(uid); const resolved = await activitypub.helpers.resolveLocalId(toPid); if (resolved.type === 'post') {