mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix: only 1b12 announce topic fork if OP is local, fix race condition in tests
This commit is contained in:
@@ -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 });
|
||||
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user