MM-3543/MM-35436: fix thread being marked unread when updating reply post (#17645)
Summary Threads should not be returned as unread if a reply post has been edited or reacted to since the time the thread was last viewed Ticket Link https://mattermost.atlassian.net/browse/MM-35436 https://mattermost.atlassian.net/browse/MM-35437
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
0aad9f7412
Коммит
6f5e14dd5e
@@ -329,4 +329,29 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
|
||||
return m2.LastUpdated < m.LastUpdated
|
||||
}, time.Second, 10*time.Millisecond)
|
||||
})
|
||||
|
||||
t.Run("Updating post does not make thread unread", func(t *testing.T) {
|
||||
newPosts := makeSomePosts()
|
||||
m, err := ss.Thread().MaintainMembership(newPosts[0].UserId, newPosts[0].Id, true, false, true, true, false)
|
||||
require.NoError(t, err)
|
||||
th, err := ss.Thread().GetThreadForUser(newPosts[0].UserId, "", newPosts[0].Id, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(2), th.UnreadReplies)
|
||||
|
||||
m.LastViewed = newPosts[2].UpdateAt + 1
|
||||
_, err = ss.Thread().UpdateMembership(m)
|
||||
require.NoError(t, err)
|
||||
th, err = ss.Thread().GetThreadForUser(newPosts[0].UserId, "", newPosts[0].Id, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(0), th.UnreadReplies)
|
||||
|
||||
editedPost := newPosts[2].Clone()
|
||||
editedPost.Message = "This is an edited post"
|
||||
_, err = ss.Post().Update(editedPost, newPosts[2])
|
||||
require.NoError(t, err)
|
||||
|
||||
th, err = ss.Thread().GetThreadForUser(newPosts[0].UserId, "", newPosts[0].Id, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(0), th.UnreadReplies)
|
||||
})
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user