From b5206dfc455c119b0dcb897bd7144be6ea4d999d Mon Sep 17 00:00:00 2001 From: Julien Maulny Date: Tue, 3 Dec 2019 21:48:31 +0100 Subject: Fix retrieving of deleted comments when subscribing to a new instance --- server/tests/api/videos/multiple-servers.ts | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'server/tests/api') diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts index e7b57ba1f..836bdc658 100644 --- a/server/tests/api/videos/multiple-servers.ts +++ b/server/tests/api/videos/multiple-servers.ts @@ -15,6 +15,7 @@ import { createUser, dateIsValid, doubleFollow, + flushAndRunServer, flushAndRunMultipleServers, getLocalVideos, getVideo, @@ -938,7 +939,51 @@ describe('Test multiple servers', function () { } }) + it('Should retrieve all comments when subscribing to a new server', async function () { + this.timeout(120000) + + const newServer = await flushAndRunServer(4) + + await setAccessTokensToServers([newServer]) + await doubleFollow(newServer, servers[0]) + await doubleFollow(newServer, servers[2]) + await waitJobs([newServer, ...servers]) + + const res = await getVideoCommentThreads(newServer.url, videoUUID, 0, 5) + + expect(res.body.total).to.equal(2) + expect(res.body.data).to.be.an('array') + expect(res.body.data).to.have.lengthOf(2) + + { + const comment: VideoComment = res.body.data[0] + expect(comment).to.not.be.undefined + expect(comment.inReplyToCommentId).to.be.null + expect(comment.account.name).to.equal('root') + expect(comment.account.host).to.equal('localhost:' + servers[2].port) + expect(comment.totalReplies).to.equal(0) + expect(dateIsValid(comment.createdAt as string)).to.be.true + expect(dateIsValid(comment.updatedAt as string)).to.be.true + } + + { + const deletedComment: VideoComment = res.body.data[1] + expect(deletedComment).to.not.be.undefined + expect(deletedComment.isDeleted).to.be.true + expect(deletedComment.deletedAt).to.not.be.null + expect(deletedComment.text).to.equal('') + expect(deletedComment.inReplyToCommentId).to.be.null + expect(deletedComment.account).to.be.null + expect(deletedComment.totalReplies).to.equal(3) + expect(dateIsValid(deletedComment.createdAt as string)).to.be.true + expect(dateIsValid(deletedComment.updatedAt as string)).to.be.true + expect(dateIsValid(deletedComment.deletedAt as string)).to.be.true + } + }) + it('Should delete a remote thread by the origin server', async function () { + this.timeout(5000) + const res = await getVideoCommentThreads(servers[ 0 ].url, videoUUID, 0, 5) const threadId = res.body.data.find(c => c.text === 'my super second comment').id await deleteVideoComment(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID, threadId) -- cgit v1.2.3