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
This commit is contained in:
Barış Uşaklı
2026-04-10 13:05:29 -04:00
committed by Barış Soner Uşaklı
parent 648344a2c9
commit 15d65943fb
2 changed files with 12 additions and 5 deletions

View File

@@ -167,14 +167,15 @@ module.exports = function (Topics) {
topicData.index = 0; topicData.index = 0;
postData.index = 0; postData.index = 0;
if (topicData.scheduled) { if (data.deleted || topicData.scheduled) {
await Topics.delete(tid); await Topics.delete(tid, uid);
topicData.deleted = true;
} }
analytics.increment(['topics', `topics:byCid:${topicData.cid}`]); analytics.increment(['topics', `topics:byCid:${topicData.cid}`]);
plugins.hooks.fire('action:topic.post', { topic: topicData, post: postData, data: data }); plugins.hooks.fire('action:topic.post', { topic: topicData, post: postData, data: data });
if (!topicData.scheduled) { if (!topicData.scheduled && !topicData.deleted) {
setImmediate(async () => { setImmediate(async () => {
try { try {
if (utils.isNumber(uid)) { if (utils.isNumber(uid)) {

View File

@@ -1420,8 +1420,14 @@ describe('Topic\'s', () => {
it('should not return topic as unread if topic is deleted', async () => { it('should not return topic as unread if topic is deleted', async () => {
const uid = await User.create({ username: 'regularJoe' }); const uid = await User.create({ username: 'regularJoe' });
const result = await topics.post({ uid: adminUid, title: 'deleted unread', content: 'not unread', cid: categoryObj.cid }); const result = await topics.post({
await topics.delete(result.topicData.tid, adminUid); uid: adminUid,
title: 'deleted unread',
content: 'not unread',
cid: categoryObj.cid,
deleted: 1,
});
const unreadTids = await topics.getUnreadTids({ cid: 0, uid: uid }); const unreadTids = await topics.getUnreadTids({ cid: 0, uid: uid });
await sleep(2000); await sleep(2000);