From 15d65943fb178e7446f498065d608cd9fd403ff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20U=C5=9Fakl=C4=B1?= Date: Fri, 10 Apr 2026 13:05:29 -0400 Subject: [PATCH] test: fix unread deleted topic test (#14164) instead of posting and immediately deleting, add a deleted param to topics.post which deletes the topic before sending notifications --- src/topics/create.js | 7 ++++--- test/topics.js | 10 ++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/topics/create.js b/src/topics/create.js index d2b709333c..ef94fdaf42 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -167,14 +167,15 @@ module.exports = function (Topics) { topicData.index = 0; postData.index = 0; - if (topicData.scheduled) { - await Topics.delete(tid); + if (data.deleted || topicData.scheduled) { + await Topics.delete(tid, uid); + topicData.deleted = true; } analytics.increment(['topics', `topics:byCid:${topicData.cid}`]); plugins.hooks.fire('action:topic.post', { topic: topicData, post: postData, data: data }); - if (!topicData.scheduled) { + if (!topicData.scheduled && !topicData.deleted) { setImmediate(async () => { try { if (utils.isNumber(uid)) { diff --git a/test/topics.js b/test/topics.js index f67e0fc40e..479167717a 100644 --- a/test/topics.js +++ b/test/topics.js @@ -1420,8 +1420,14 @@ describe('Topic\'s', () => { it('should not return topic as unread if topic is deleted', async () => { const uid = await User.create({ username: 'regularJoe' }); - const result = await topics.post({ uid: adminUid, title: 'deleted unread', content: 'not unread', cid: categoryObj.cid }); - await topics.delete(result.topicData.tid, adminUid); + const result = await topics.post({ + uid: adminUid, + title: 'deleted unread', + content: 'not unread', + cid: categoryObj.cid, + deleted: 1, + }); + const unreadTids = await topics.getUnreadTids({ cid: 0, uid: uid }); await sleep(2000);