X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Ftests%2Fapi%2Fvideos%2Fmultiple-servers.ts;h=42a1241f7d1d2b202d23793c61a5746b539d1edb;hb=066e94c5382a761180c7d82fa24b31b66dbeaca4;hp=b6dfe0d1b569d51075687682ef453d0273c31192;hpb=47564bbe2eeb2baae9b7e3f9b2b8d16522bc7e04;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts index b6dfe0d1b..42a1241f7 100644 --- a/server/tests/api/videos/multiple-servers.ts +++ b/server/tests/api/videos/multiple-servers.ts @@ -8,12 +8,35 @@ import { VideoPrivacy } from '../../../../shared/models/videos' 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, - updateVideo, uploadVideo, userLogin, viewVideo, wait, webtorrentAdd + addVideoChannel, + checkVideoFilesWereRemoved, + completeVideoCheck, + createUser, + dateIsValid, + doubleFollow, + flushAndRunMultipleServers, + flushTests, getLocalVideos, + 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' @@ -69,6 +92,7 @@ describe('Test multiple servers', function () { language: 9, nsfw: true, description: 'my super description for server 1', + support: 'my super support text for server 1', tags: [ 'tag1p1', 'tag2p1' ], channelId: videoChannelId, fixture: 'video_short1.webm' @@ -87,8 +111,11 @@ describe('Test multiple servers', function () { language: 9, nsfw: true, description: 'my super description for server 1', - host: 'localhost:9001', - account: 'root', + support: 'my super support text for server 1', + account: { + name: 'root', + host: 'localhost:9001' + }, isLocal, duration: 10, tags: [ 'tag1p1', 'tag2p1' ], @@ -135,8 +162,11 @@ describe('Test multiple servers', function () { language: 11, nsfw: true, description: 'my super description for server 2', + support: 'my super support text for server 2', tags: [ 'tag1p2', 'tag2p2', 'tag3p2' ], - fixture: 'video_short2.webm' + fixture: 'video_short2.webm', + thumbnailfile: 'thumbnail.jpg', + previewfile: 'preview.jpg' } await uploadVideo(servers[1].url, userAccessToken, videoAttributes) @@ -153,8 +183,11 @@ describe('Test multiple servers', function () { language: 11, nsfw: true, description: 'my super description for server 2', - host: 'localhost:9002', - account: 'user1', + support: 'my super support text for server 2', + account: { + name: 'user1', + host: 'localhost:9002' + }, isLocal, commentsEnabled: true, duration: 5, @@ -183,7 +216,9 @@ describe('Test multiple servers', function () { resolution: 720, size: 710000 } - ] + ], + thumbnailfile: 'thumbnail', + previewfile: 'preview' } const res = await getVideosList(server.url) @@ -206,6 +241,7 @@ describe('Test multiple servers', function () { language: 11, nsfw: true, description: 'my super description for server 3', + support: 'my super support text for server 3', tags: [ 'tag1p3' ], fixture: 'video_short3.webm' } @@ -218,6 +254,7 @@ describe('Test multiple servers', function () { language: 12, nsfw: false, description: 'my super description for server 3-2', + support: 'my super support text for server 3-2', tags: [ 'tag2p3', 'tag3p3', 'tag4p3' ], fixture: 'video_short.webm' } @@ -252,8 +289,11 @@ describe('Test multiple servers', function () { language: 11, nsfw: true, description: 'my super description for server 3', - host: 'localhost:9003', - account: 'root', + support: 'my super support text for server 3', + account: { + name: 'root', + host: 'localhost:9003' + }, isLocal, duration: 5, commentsEnabled: true, @@ -281,8 +321,11 @@ describe('Test multiple servers', function () { language: 12, nsfw: false, description: 'my super description for server 3-2', - host: 'localhost:9003', - account: 'root', + support: 'my super support text for server 3-2', + account: { + name: 'root', + host: 'localhost:9003' + }, commentsEnabled: true, isLocal, duration: 5, @@ -306,6 +349,36 @@ describe('Test multiple servers', function () { }) }) + describe('It should list local videos', function () { + it('Should list only local videos on server 1', async function () { + const { body } = await getLocalVideos(servers[0].url) + + expect(body.total).to.equal(1) + expect(body.data).to.be.an('array') + expect(body.data.length).to.equal(1) + expect(body.data[0].name).to.equal('my super name for server 1') + }) + + it('Should list only local videos on server 2', async function () { + const { body } = await getLocalVideos(servers[1].url) + + expect(body.total).to.equal(1) + expect(body.data).to.be.an('array') + expect(body.data.length).to.equal(1) + expect(body.data[0].name).to.equal('my super name for server 2') + }) + + it('Should list only local videos on server 3', async function () { + const { body } = await getLocalVideos(servers[2].url) + + expect(body.total).to.equal(2) + expect(body.data).to.be.an('array') + expect(body.data.length).to.equal(2) + expect(body.data[0].name).to.equal('my super name for server 3') + expect(body.data[1].name).to.equal('my super name for server 3-2') + }) + }) + describe('Should seed the uploaded video', function () { it('Should add the file 1 by asking server 3', async function () { this.timeout(10000) @@ -408,15 +481,22 @@ describe('Test multiple servers', function () { }) it('Should view multiple videos on owned servers', async function () { - this.timeout(10000) + this.timeout(15000) const tasks: Promise[] = [] - tasks.push(viewVideo(servers[2].url, localVideosServer3[0])) - tasks.push(viewVideo(servers[2].url, localVideosServer3[0])) - tasks.push(viewVideo(servers[2].url, localVideosServer3[0])) - tasks.push(viewVideo(servers[2].url, localVideosServer3[1])) + await viewVideo(servers[2].url, localVideosServer3[0]) + await viewVideo(servers[2].url, localVideosServer3[0]) + await viewVideo(servers[2].url, localVideosServer3[0]) + await viewVideo(servers[2].url, localVideosServer3[1]) await Promise.all(tasks) + await wait(1500) + + await viewVideo(servers[2].url, localVideosServer3[0]) + + await wait(1500) + + await viewVideo(servers[2].url, localVideosServer3[0]) await wait(5000) @@ -474,16 +554,17 @@ describe('Test multiple servers', function () { it('Should like and dislikes videos on different services', async function () { this.timeout(20000) - const tasks: Promise[] = [] - 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) @@ -519,7 +600,10 @@ describe('Test multiple servers', function () { language: 13, nsfw: true, description: 'my super description updated', - tags: [ 'tag_up_1', 'tag_up_2' ] + support: 'my super support text updated', + tags: [ 'tag_up_1', 'tag_up_2' ], + thumbnailfile: 'thumbnail.jpg', + previewfile: 'preview.jpg' } await updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, attributes) @@ -545,8 +629,11 @@ describe('Test multiple servers', function () { language: 13, nsfw: true, description: 'my super description updated', - host: 'localhost:9003', - account: 'root', + support: 'my super support text updated', + account: { + name: 'root', + host: 'localhost:9003' + }, isLocal, duration: 5, commentsEnabled: true, @@ -563,7 +650,9 @@ describe('Test multiple servers', function () { resolution: 720, size: 292677 } - ] + ], + thumbnailfile: 'thumbnail', + previewfile: 'preview' } await completeVideoCheck(server.url, videoUpdated, checkAttributes) } @@ -578,6 +667,13 @@ describe('Test multiple servers', function () { 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) @@ -614,7 +710,10 @@ describe('Test multiple servers', function () { expect(baseVideo.licence).to.equal(video.licence) expect(baseVideo.category).to.equal(video.category) expect(baseVideo.nsfw).to.equal(video.nsfw) - expect(baseVideo.accountName).to.equal(video.accountName) + expect(baseVideo.account.name).to.equal(video.account.name) + expect(baseVideo.account.displayName).to.equal(video.account.displayName) + expect(baseVideo.account.url).to.equal(video.account.url) + expect(baseVideo.account.host).to.equal(video.account.host) expect(baseVideo.tags).to.deep.equal(video.tags) } }) @@ -624,8 +723,7 @@ describe('Test multiple servers', function () { const res = await getVideo(server.url, videoUUID) const video = res.body - const test = await testVideoImage(server.url, 'video_short1-preview.webm', video.previewPath) - expect(test).to.equal(true) + await testImage(server.url, 'video_short1-preview.webm', video.previewPath) } }) }) @@ -738,6 +836,37 @@ 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) + + 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) @@ -794,8 +923,11 @@ describe('Test multiple servers', function () { language: null, nsfw: false, description: null, - host: 'localhost:9002', - account: 'root', + support: null, + account: { + name: 'root', + host: 'localhost:9002' + }, isLocal, duration: 5, commentsEnabled: true,