X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fvideos%2Fmultiple-servers.ts;h=e7b57ba1f071be7e9468fc572f2b24fc515b1b62;hb=69222afac8f8c41d90295b33f0695bbff352851e;hp=e9625e5f79a04589e14641a014e85c0b5cb3f3aa;hpb=b6a1dd4d1b3b0032f8b968e72cbd074f646e8827;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts index e9625e5f7..e7b57ba1f 100644 --- a/server/tests/api/videos/multiple-servers.ts +++ b/server/tests/api/videos/multiple-servers.ts @@ -500,19 +500,15 @@ describe('Test multiple servers', function () { it('Should view multiple videos on owned servers', async function () { this.timeout(30000) - const tasks: Promise[] = [] - await viewVideo(servers[2].url, localVideosServer3[0]) await viewVideo(servers[2].url, localVideosServer3[0]) + await wait(1000) + await viewVideo(servers[2].url, localVideosServer3[0]) await viewVideo(servers[2].url, localVideosServer3[1]) - await Promise.all(tasks) - await waitJobs(servers) + await wait(1000) await viewVideo(servers[2].url, localVideosServer3[0]) - - await waitJobs(servers) - await viewVideo(servers[2].url, localVideosServer3[0]) await waitJobs(servers) @@ -533,7 +529,7 @@ describe('Test multiple servers', function () { }) it('Should view multiple videos on each servers', async function () { - this.timeout(30000) + this.timeout(45000) const tasks: Promise[] = [] tasks.push(viewVideo(servers[0].url, remoteVideosServer1[0])) @@ -552,7 +548,7 @@ describe('Test multiple servers', function () { await waitJobs(servers) // Wait the repeatable job - await wait(8000) + await wait(16000) let baseVideos = null @@ -872,7 +868,7 @@ describe('Test multiple servers', function () { await waitJobs(servers) }) - it('Should not have this comment anymore', async function () { + it('Should have this comment marked as deleted', async function () { for (const server of servers) { const res1 = await getVideoCommentThreads(server.url, videoUUID, 0, 5) const threadId = res1.body.data.find(c => c.text === 'my super first comment').id @@ -884,7 +880,13 @@ describe('Test multiple servers', function () { const firstChild = tree.children[0] expect(firstChild.comment.text).to.equal('my super answer to thread 1') - expect(firstChild.children).to.have.lengthOf(0) + expect(firstChild.children).to.have.lengthOf(1) + + const deletedComment = firstChild.children[0].comment + expect(deletedComment.isDeleted).to.be.true + expect(deletedComment.deletedAt).to.not.be.null + expect(deletedComment.account).to.be.null + expect(deletedComment.text).to.equal('') const secondChild = tree.children[1] expect(secondChild.comment.text).to.equal('my second answer to thread 1') @@ -894,20 +896,20 @@ describe('Test multiple servers', function () { it('Should delete the thread comments', async function () { this.timeout(10000) - const res1 = await getVideoCommentThreads(servers[0].url, videoUUID, 0, 5) - const threadId = res1.body.data.find(c => c.text === 'my super first comment').id - await deleteVideoComment(servers[0].url, servers[0].accessToken, videoUUID, threadId) + const res = await getVideoCommentThreads(servers[ 0 ].url, videoUUID, 0, 5) + const threadId = res.body.data.find(c => c.text === 'my super first comment').id + await deleteVideoComment(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID, threadId) await waitJobs(servers) }) - it('Should have the thread comments deleted on other servers too', async function () { + it('Should have the threads marked as deleted on other servers too', async function () { for (const server of servers) { const res = await getVideoCommentThreads(server.url, videoUUID, 0, 5) - expect(res.body.total).to.equal(1) + expect(res.body.total).to.equal(2) expect(res.body.data).to.be.an('array') - expect(res.body.data).to.have.lengthOf(1) + expect(res.body.data).to.have.lengthOf(2) { const comment: VideoComment = res.body.data[0] @@ -919,6 +921,57 @@ describe('Test multiple servers', function () { 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 () { + 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) + + await waitJobs(servers) + }) + + it('Should have the threads marked as deleted on other servers too', async function () { + for (const server of servers) { + const res = await getVideoCommentThreads(server.url, videoUUID, 0, 5) + + expect(res.body.total).to.equal(2) + expect(res.body.data).to.have.lengthOf(2) + + { + const comment: VideoComment = res.body.data[0] + expect(comment.text).to.equal('') + expect(comment.isDeleted).to.be.true + expect(comment.createdAt).to.not.be.null + expect(comment.deletedAt).to.not.be.null + expect(comment.account).to.be.null + expect(comment.totalReplies).to.equal(0) + } + + { + const comment: VideoComment = res.body.data[1] + expect(comment.text).to.equal('') + expect(comment.isDeleted).to.be.true + expect(comment.createdAt).to.not.be.null + expect(comment.deletedAt).to.not.be.null + expect(comment.account).to.be.null + expect(comment.totalReplies).to.equal(3) + } } }) @@ -985,7 +1038,7 @@ describe('Test multiple servers', function () { }, isLocal, duration: 5, - commentsEnabled: false, + commentsEnabled: true, downloadEnabled: true, tags: [ ], privacy: VideoPrivacy.PUBLIC,