X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fredundancy%2Fredundancy-constraints.ts;h=c86573168df6ac650e74d2a98c86365cb9dbad32;hb=d102de1b38f2877463529c3b27bd35ffef4fd8bf;hp=4fd8f065c0fb2a68228cfe091f9f54835c7d60e2;hpb=8c9e7875269a990ed3000e1d4995d808e4ff50f7;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/redundancy/redundancy-constraints.ts b/server/tests/api/redundancy/redundancy-constraints.ts index 4fd8f065c..c86573168 100644 --- a/server/tests/api/redundancy/redundancy-constraints.ts +++ b/server/tests/api/redundancy/redundancy-constraints.ts @@ -1,68 +1,63 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ -import * as chai from 'chai' -import 'mocha' +import { expect } from 'chai' +import { VideoPrivacy } from '@shared/models' import { cleanupTests, - flushAndRunServer, - follow, + createSingleServer, killallServers, - reRunServer, - ServerInfo, + PeerTubeServer, setAccessTokensToServers, - uploadVideo, - waitUntilLog -} from '../../../../shared/extra-utils' -import { waitJobs } from '../../../../shared/extra-utils/server/jobs' -import { listVideoRedundancies, updateRedundancy } from '@shared/extra-utils/server/redundancy' - -const expect = chai.expect + waitJobs +} from '@shared/server-commands' describe('Test redundancy constraints', function () { - let remoteServer: ServerInfo - let localServer: ServerInfo - let servers: ServerInfo[] + let remoteServer: PeerTubeServer + let localServer: PeerTubeServer + let servers: PeerTubeServer[] + + const remoteServerConfig = { + redundancy: { + videos: { + check_interval: '1 second', + strategies: [ + { + strategy: 'recently-added', + min_lifetime: '1 hour', + size: '100MB', + min_views: 0 + } + ] + } + } + } + + async function uploadWrapper (videoName: string) { + // Wait for transcoding + const { id } = await localServer.videos.upload({ attributes: { name: 'to transcode', privacy: VideoPrivacy.PRIVATE } }) + await waitJobs([ localServer ]) + + // Update video to schedule a federation + await localServer.videos.update({ id, attributes: { name: videoName, privacy: VideoPrivacy.PUBLIC } }) + } async function getTotalRedundanciesLocalServer () { - const res = await listVideoRedundancies({ - url: localServer.url, - accessToken: localServer.accessToken, - target: 'my-videos' - }) + const body = await localServer.redundancy.listVideos({ target: 'my-videos' }) - return res.body.total + return body.total } async function getTotalRedundanciesRemoteServer () { - const res = await listVideoRedundancies({ - url: remoteServer.url, - accessToken: remoteServer.accessToken, - target: 'remote-videos' - }) + const body = await remoteServer.redundancy.listVideos({ target: 'remote-videos' }) - return res.body.total + return body.total } before(async function () { this.timeout(120000) { - const config = { - redundancy: { - videos: { - check_interval: '1 second', - strategies: [ - { - strategy: 'recently-added', - min_lifetime: '1 hour', - size: '100MB', - min_views: 0 - } - ] - } - } - } - remoteServer = await flushAndRunServer(1, config) + remoteServer = await createSingleServer(1, remoteServerConfig) } { @@ -73,7 +68,7 @@ describe('Test redundancy constraints', function () { } } } - localServer = await flushAndRunServer(2, config) + localServer = await createSingleServer(2, config) } servers = [ remoteServer, localServer ] @@ -81,14 +76,14 @@ describe('Test redundancy constraints', function () { // Get the access tokens await setAccessTokensToServers(servers) - await uploadVideo(localServer.url, localServer.accessToken, { name: 'video 1 server 2' }) + await localServer.videos.upload({ attributes: { name: 'video 1 server 2' } }) await waitJobs(servers) // Server 1 and server 2 follow each other - await follow(remoteServer.url, [ localServer.url ], remoteServer.accessToken) + await remoteServer.follows.follow({ hosts: [ localServer.url ] }) await waitJobs(servers) - await updateRedundancy(remoteServer.url, remoteServer.accessToken, localServer.host, true) + await remoteServer.redundancy.updateRedundancy({ host: localServer.host, redundancyAllowed: true }) await waitJobs(servers) }) @@ -97,7 +92,7 @@ describe('Test redundancy constraints', function () { this.timeout(120000) await waitJobs(servers) - await waitUntilLog(remoteServer, 'Duplicated ', 5) + await remoteServer.servers.waitUntilLog('Duplicated ', 5) await waitJobs(servers) { @@ -122,12 +117,11 @@ describe('Test redundancy constraints', function () { } } await killallServers([ localServer ]) - await reRunServer(localServer, config) + await localServer.run(config) - await uploadVideo(localServer.url, localServer.accessToken, { name: 'video 2 server 2' }) + await uploadWrapper('video 2 server 2') - await waitJobs(servers) - await waitUntilLog(remoteServer, 'Duplicated ', 10) + await remoteServer.servers.waitUntilLog('Duplicated ', 10) await waitJobs(servers) { @@ -152,12 +146,11 @@ describe('Test redundancy constraints', function () { } } await killallServers([ localServer ]) - await reRunServer(localServer, config) + await localServer.run(config) - await uploadVideo(localServer.url, localServer.accessToken, { name: 'video 3 server 2' }) + await uploadWrapper('video 3 server 2') - await waitJobs(servers) - await waitUntilLog(remoteServer, 'Duplicated ', 15) + await remoteServer.servers.waitUntilLog('Duplicated ', 15) await waitJobs(servers) { @@ -174,13 +167,11 @@ describe('Test redundancy constraints', function () { it('Should have redundancy on server 1 and on server 2 with followings filter now server 2 follows server 1', async function () { this.timeout(120000) - await follow(localServer.url, [ remoteServer.url ], localServer.accessToken) + await localServer.follows.follow({ hosts: [ remoteServer.url ] }) await waitJobs(servers) - await uploadVideo(localServer.url, localServer.accessToken, { name: 'video 4 server 2' }) - - await waitJobs(servers) - await waitUntilLog(remoteServer, 'Duplicated ', 20) + await uploadWrapper('video 4 server 2') + await remoteServer.servers.waitUntilLog('Duplicated ', 20) await waitJobs(servers) {