fix: only 1b12 announce topic fork if OP is local, fix race condition in tests

This commit is contained in:
Julian Lam
2025-03-11 15:32:10 -04:00
parent 291af926a6
commit 945617cbcf
2 changed files with 8 additions and 6 deletions

View File

@@ -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 });

View File

@@ -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
);