diff --git a/src/topics/fork.js b/src/topics/fork.js index f300961143..fc8b030f63 100644 --- a/src/topics/fork.js +++ b/src/topics/fork.js @@ -8,6 +8,7 @@ const privileges = require('../privileges'); const plugins = require('../plugins'); const meta = require('../meta'); const activitypub = require('../activitypub'); +const utils = require('../utils'); module.exports = function (Topics) { Topics.createTopicFromPosts = async function (uid, title, pids, fromTid, cid) { @@ -90,8 +91,11 @@ module.exports = function (Topics) { Topics.events.log(fromTid, { type: 'fork', uid, href: `/topic/${tid}` }), ]); - const { activity } = await activitypub.mocks.activities.create(pids[0], uid); - await activitypub.feps.announce(pids[0], activity); + // ideally we should federate a "move" activity instead, then can capture remote posts too. tbd + if (utils.isNumber(pids[0])) { + const { activity } = await activitypub.mocks.activities.create(pids[0], uid); + await activitypub.feps.announce(pids[0], activity); + } plugins.hooks.fire('action:topic.fork', { tid, fromTid, uid }); diff --git a/test/activitypub/feps.js b/test/activitypub/feps.js index 274de2b3ea..09c5f1662f 100644 --- a/test/activitypub/feps.js +++ b/test/activitypub/feps.js @@ -80,10 +80,8 @@ describe('FEPs', () => { content: utils.generateUUID(), }); const { tid } = topicData; - const [{ pid: reply1Pid }, { pid: reply2Pid }] = await Promise.all([ - topics.reply({ uid, tid, content: utils.generateUUID() }), - topics.reply({ uid, tid, content: utils.generateUUID() }), - ]); + const { pid: reply1Pid } = await topics.reply({ uid, tid, content: utils.generateUUID() }); + const { pid: reply2Pid } = await topics.reply({ uid, tid, content: utils.generateUUID() }); await topics.createTopicFromPosts( adminUid, utils.generateUUID(), [reply1Pid, reply2Pid], tid, cid );