X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fserver%2Fhandle-down.ts;h=3dcd076f599df0be92bea341f95374e872129b62;hb=4e56f0fff12ab9840574e7a27277fc78b195b3e2;hp=d45c3ae8a72441315d5e0f2031e181f65ce7fc94;hpb=6c5065a011b099618681a37bd77eaa7bd3db752e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/server/handle-down.ts b/server/tests/api/server/handle-down.ts index d45c3ae8a..3dcd076f5 100644 --- a/server/tests/api/server/handle-down.ts +++ b/server/tests/api/server/handle-down.ts @@ -2,37 +2,30 @@ import 'mocha' import * as chai from 'chai' -import { HttpStatusCode } from '@shared/core-utils' +import { completeVideoCheck } from '@server/tests/shared' +import { wait } from '@shared/core-utils' +import { HttpStatusCode, JobState, VideoCreateResult, VideoPrivacy } from '@shared/models' import { cleanupTests, CommentsCommand, - completeVideoCheck, - flushAndRunMultipleServers, - getVideo, - getVideosList, + createMultipleServers, killallServers, - reRunServer, - ServerInfo, + PeerTubeServer, setAccessTokensToServers, - updateVideo, - uploadVideo, - uploadVideoAndGetId, - wait, waitJobs -} from '@shared/extra-utils' -import { JobState, Video, VideoPrivacy } from '@shared/models' +} from '@shared/server-commands' const expect = chai.expect describe('Test handle downs', function () { - let servers: ServerInfo[] = [] + let servers: PeerTubeServer[] = [] let threadIdServer1: number let threadIdServer2: number let commentIdServer1: number let commentIdServer2: number - let missedVideo1: Video - let missedVideo2: Video - let unlistedVideo: Video + let missedVideo1: VideoCreateResult + let missedVideo2: VideoCreateResult + let unlistedVideo: VideoCreateResult const videoIdsServer1: string[] = [] @@ -57,10 +50,10 @@ describe('Test handle downs', function () { let commentCommands: CommentsCommand[] before(async function () { - this.timeout(30000) + this.timeout(120000) - servers = await flushAndRunMultipleServers(3) - commentCommands = servers.map(s => s.commentsCommand) + servers = await createMultipleServers(3) + commentCommands = servers.map(s => s.comments) checkAttributes = { name: 'my super name for server 1', @@ -104,21 +97,21 @@ describe('Test handle downs', function () { this.timeout(240000) // Server 2 and 3 follow server 1 - await servers[1].followsCommand.follow({ targets: [ servers[0].url ] }) - await servers[2].followsCommand.follow({ targets: [ servers[0].url ] }) + await servers[1].follows.follow({ hosts: [ servers[0].url ] }) + await servers[2].follows.follow({ hosts: [ servers[0].url ] }) await waitJobs(servers) // Upload a video to server 1 - await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) + await servers[0].videos.upload({ attributes: videoAttributes }) await waitJobs(servers) // And check all servers have this video for (const server of servers) { - const res = await getVideosList(server.url) - expect(res.body.data).to.be.an('array') - expect(res.body.data).to.have.lengthOf(1) + const { data } = await server.videos.list() + expect(data).to.be.an('array') + expect(data).to.have.lengthOf(1) } // Kill server 2 @@ -126,7 +119,7 @@ describe('Test handle downs', function () { // Remove server 2 follower for (let i = 0; i < 10; i++) { - await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) + await servers[0].videos.upload({ attributes: videoAttributes }) } await waitJobs([ servers[0], servers[2] ]) @@ -134,15 +127,12 @@ describe('Test handle downs', function () { // Kill server 3 await killallServers([ servers[2] ]) - const resLastVideo1 = await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) - missedVideo1 = resLastVideo1.body.video + missedVideo1 = await servers[0].videos.upload({ attributes: videoAttributes }) - const resLastVideo2 = await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) - missedVideo2 = resLastVideo2.body.video + missedVideo2 = await servers[0].videos.upload({ attributes: videoAttributes }) // Unlisted video - const resVideo = await uploadVideo(servers[0].url, servers[0].accessToken, unlistedVideoAttributes) - unlistedVideo = resVideo.body.video + unlistedVideo = await servers[0].videos.upload({ attributes: unlistedVideoAttributes }) // Add comments to video 2 { @@ -161,7 +151,7 @@ describe('Test handle downs', function () { await wait(11000) // Only server 3 is still a follower of server 1 - const body = await servers[0].followsCommand.getFollowers({ start: 0, count: 2, sort: 'createdAt' }) + const body = await servers[0].follows.getFollowers({ start: 0, count: 2, sort: 'createdAt' }) expect(body.data).to.be.an('array') expect(body.data).to.have.lengthOf(1) expect(body.data[0].follower.host).to.equal('localhost:' + servers[2].port) @@ -171,7 +161,7 @@ describe('Test handle downs', function () { const states: JobState[] = [ 'waiting', 'active' ] for (const state of states) { - const body = await servers[0].jobsCommand.getJobsList({ + const body = await servers[0].jobs.list({ state: state, start: 0, count: 50, @@ -182,19 +172,19 @@ describe('Test handle downs', function () { }) it('Should re-follow server 1', async function () { - this.timeout(35000) + this.timeout(70000) - await reRunServer(servers[1]) - await reRunServer(servers[2]) + await servers[1].run() + await servers[2].run() - await servers[1].followsCommand.unfollow({ target: servers[0] }) + await servers[1].follows.unfollow({ target: servers[0] }) await waitJobs(servers) - await servers[1].followsCommand.follow({ targets: [ servers[0].url ] }) + await servers[1].follows.follow({ hosts: [ servers[0].url ] }) await waitJobs(servers) - const body = await servers[0].followsCommand.getFollowers({ start: 0, count: 2, sort: 'createdAt' }) + const body = await servers[0].follows.getFollowers({ start: 0, count: 2, sort: 'createdAt' }) expect(body.data).to.be.an('array') expect(body.data).to.have.lengthOf(2) }) @@ -202,25 +192,27 @@ describe('Test handle downs', function () { it('Should send an update to server 3, and automatically fetch the video', async function () { this.timeout(15000) - const res1 = await getVideosList(servers[2].url) - expect(res1.body.data).to.be.an('array') - expect(res1.body.data).to.have.lengthOf(11) + { + const { data } = await servers[2].videos.list() + expect(data).to.be.an('array') + expect(data).to.have.lengthOf(11) + } - await updateVideo(servers[0].url, servers[0].accessToken, missedVideo1.uuid, {}) - await updateVideo(servers[0].url, servers[0].accessToken, unlistedVideo.uuid, {}) + await servers[0].videos.update({ id: missedVideo1.uuid }) + await servers[0].videos.update({ id: unlistedVideo.uuid }) await waitJobs(servers) - const res = await getVideosList(servers[2].url) - expect(res.body.data).to.be.an('array') - // 1 video is unlisted - expect(res.body.data).to.have.lengthOf(12) + { + const { data } = await servers[2].videos.list() + expect(data).to.be.an('array') + // 1 video is unlisted + expect(data).to.have.lengthOf(12) + } // Check unlisted video - const resVideo = await getVideo(servers[2].url, unlistedVideo.uuid) - expect(resVideo.body).not.to.be.undefined - - await completeVideoCheck(servers[2].url, resVideo.body, unlistedCheckAttributes) + const video = await servers[2].videos.get({ id: unlistedVideo.uuid }) + await completeVideoCheck(servers[2], video, unlistedCheckAttributes) }) it('Should send comments on a video to server 3, and automatically fetch the video', async function () { @@ -230,17 +222,16 @@ describe('Test handle downs', function () { await waitJobs(servers) - const resVideo = await getVideo(servers[2].url, missedVideo2.uuid) - expect(resVideo.body).not.to.be.undefined + await servers[2].videos.get({ id: missedVideo2.uuid }) { - const { data } = await servers[2].commentsCommand.listThreads({ videoId: missedVideo2.uuid }) + const { data } = await servers[2].comments.listThreads({ videoId: missedVideo2.uuid }) expect(data).to.be.an('array') expect(data).to.have.lengthOf(1) threadIdServer2 = data[0].id - const tree = await servers[2].commentsCommand.getThread({ videoId: missedVideo2.uuid, threadId: threadIdServer2 }) + const tree = await servers[2].comments.getThread({ videoId: missedVideo2.uuid, threadId: threadIdServer2 }) expect(tree.comment.text).equal('thread 1') expect(tree.children).to.have.lengthOf(1) @@ -263,7 +254,7 @@ describe('Test handle downs', function () { it('Should correctly reply to the comment', async function () { this.timeout(15000) - await servers[2].commentsCommand.addReply({ videoId: missedVideo2.uuid, toCommentId: commentIdServer2, text: 'comment 1-4' }) + await servers[2].comments.addReply({ videoId: missedVideo2.uuid, toCommentId: commentIdServer2, text: 'comment 1-4' }) await waitJobs(servers) @@ -293,24 +284,24 @@ describe('Test handle downs', function () { this.timeout(120000) for (let i = 0; i < 10; i++) { - const uuid = (await uploadVideoAndGetId({ server: servers[0], videoName: 'video ' + i })).uuid + const uuid = (await servers[0].videos.quickUpload({ name: 'video ' + i })).uuid videoIdsServer1.push(uuid) } await waitJobs(servers) for (const id of videoIdsServer1) { - await getVideo(servers[1].url, id) + await servers[1].videos.get({ id }) } await waitJobs(servers) - await servers[1].sqlCommand.setActorFollowScores(20) + await servers[1].sql.setActorFollowScores(20) // Wait video expiration await wait(11000) // Refresh video -> score + 10 = 30 - await getVideo(servers[1].url, videoIdsServer1[0]) + await servers[1].videos.get({ id: videoIdsServer1[0] }) await waitJobs(servers) }) @@ -325,14 +316,14 @@ describe('Test handle downs', function () { for (let i = 0; i < 5; i++) { try { - await getVideo(servers[1].url, videoIdsServer1[i]) + await servers[1].videos.get({ id: videoIdsServer1[i] }) await waitJobs([ servers[1] ]) await wait(1500) } catch {} } for (const id of videoIdsServer1) { - await getVideo(servers[1].url, id, HttpStatusCode.FORBIDDEN_403) + await servers[1].videos.get({ id, expectedStatus: HttpStatusCode.FORBIDDEN_403 }) } })