import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model'
import {
- addVideoChannel, completeVideoCheck, createUser, dateIsValid, doubleFollow, flushAndRunMultipleServers, flushTests, getVideo,
- getVideoChannelsList, getVideosList, killallServers, rateVideo, removeVideo, ServerInfo, setAccessTokensToServers, testVideoImage,
+ addVideoChannel, checkVideoFilesWereRemoved, completeVideoCheck, createUser, dateIsValid, doubleFollow, flushAndRunMultipleServers,
+ flushTests, getVideo,
+ getVideoChannelsList, getVideosList, killallServers, rateVideo, removeVideo, ServerInfo, setAccessTokensToServers, testImage,
updateVideo, uploadVideo, userLogin, viewVideo, wait, webtorrentAdd
} from '../../utils'
import {
- addVideoCommentReply, addVideoCommentThread, getVideoCommentThreads,
+ addVideoCommentReply, addVideoCommentThread, deleteVideoComment, getVideoCommentThreads,
getVideoThreadComments
} from '../../utils/videos/video-comments'
it('Should like and dislikes videos on different services', async function () {
this.timeout(20000)
- const tasks: Promise<any>[] = []
- tasks.push(rateVideo(servers[0].url, servers[0].accessToken, remoteVideosServer1[0], 'like'))
- tasks.push(rateVideo(servers[0].url, servers[0].accessToken, remoteVideosServer1[0], 'dislike'))
- tasks.push(rateVideo(servers[0].url, servers[0].accessToken, remoteVideosServer1[0], 'like'))
- tasks.push(rateVideo(servers[2].url, servers[2].accessToken, localVideosServer3[1], 'like'))
- tasks.push(rateVideo(servers[2].url, servers[2].accessToken, localVideosServer3[1], 'dislike'))
- tasks.push(rateVideo(servers[2].url, servers[2].accessToken, remoteVideosServer3[1], 'dislike'))
- tasks.push(rateVideo(servers[2].url, servers[2].accessToken, remoteVideosServer3[0], 'like'))
-
- await Promise.all(tasks)
+ await rateVideo(servers[0].url, servers[0].accessToken, remoteVideosServer1[0], 'like')
+ await wait(200)
+ await rateVideo(servers[0].url, servers[0].accessToken, remoteVideosServer1[0], 'dislike')
+ await wait(200)
+ await rateVideo(servers[0].url, servers[0].accessToken, remoteVideosServer1[0], 'like')
+ await rateVideo(servers[2].url, servers[2].accessToken, localVideosServer3[1], 'like')
+ await wait(200)
+ await rateVideo(servers[2].url, servers[2].accessToken, localVideosServer3[1], 'dislike')
+ await rateVideo(servers[2].url, servers[2].accessToken, remoteVideosServer3[1], 'dislike')
+ await wait(200)
+ await rateVideo(servers[2].url, servers[2].accessToken, remoteVideosServer3[0], 'like')
await wait(10000)
await wait(5000)
})
+ it('Should not have files of videos 3 and 3-2 on each server', async function () {
+ for (const server of servers) {
+ await checkVideoFilesWereRemoved(toRemove[0].uuid, server.serverNumber)
+ await checkVideoFilesWereRemoved(toRemove[1].uuid, server.serverNumber)
+ }
+ })
+
it('Should have videos 1 and 3 on each server', async function () {
for (const server of servers) {
const res = await getVideosList(server.url)
const res = await getVideo(server.url, videoUUID)
const video = res.body
- const test = await testVideoImage(server.url, 'video_short1-preview.webm', video.previewPath)
+ const test = await testImage(server.url, 'video_short1-preview.webm', video.previewPath)
expect(test).to.equal(true)
}
})
}
})
+ 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)
+
+ await wait(5000)
+ })
+
+ it('Should have the thread comments 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.data).to.be.an('array')
+ expect(res.body.data).to.have.lengthOf(1)
+
+ {
+ 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:9003')
+ expect(comment.totalReplies).to.equal(0)
+ expect(dateIsValid(comment.createdAt as string)).to.be.true
+ expect(dateIsValid(comment.updatedAt as string)).to.be.true
+ }
+ }
+ })
+
it('Should disable comments', async function () {
this.timeout(20000)