X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Flive%2Flive-save-replay.ts;h=9acd5601d5b447a50395529c3af598cb293ed710;hb=04aed76711909507e74905bde3a7fa024d3585c9;hp=757e1184527dfd7a72370afb4da6c45d3ac51f09;hpb=b7085c713220c9c5a96c9bb77330c2ba6ae9274e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/live/live-save-replay.ts b/server/tests/api/live/live-save-replay.ts index 757e11845..9acd5601d 100644 --- a/server/tests/api/live/live-save-replay.ts +++ b/server/tests/api/live/live-save-replay.ts @@ -4,28 +4,26 @@ import 'mocha' import * as chai from 'chai' import { FfmpegCommand } from 'fluent-ffmpeg' import { LiveVideoCreate, VideoDetails, VideoPrivacy, VideoState } from '@shared/models' +import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { addVideoToBlacklist, checkLiveCleanup, cleanupTests, - createLive, + ConfigCommand, doubleFollow, flushAndRunMultipleServers, getVideo, getVideosList, removeVideo, - sendRTMPStreamInVideo, ServerInfo, setAccessTokensToServers, setDefaultVideoChannel, stopFfmpeg, testFfmpegStreamError, - updateCustomSubConfig, updateVideo, - waitJobs, - waitUntilLivePublished + wait, + waitJobs } from '../../../../shared/extra-utils' -import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' const expect = chai.expect @@ -49,8 +47,8 @@ describe('Save replay setting', function () { saveReplay } - const res = await createLive(servers[0].url, servers[0].accessToken, attributes) - return res.body.video.uuid + const { uuid } = await servers[0].liveCommand.create({ fields: attributes }) + return uuid } async function checkVideosExist (videoId: string, existsInList: boolean, getStatus?: number) { @@ -74,6 +72,18 @@ describe('Save replay setting', function () { } } + async function waitUntilLivePublishedOnAllServers (videoId: string) { + for (const server of servers) { + await server.liveCommand.waitUntilPublished({ videoId }) + } + } + + async function waitUntilLiveSavedOnAllServers (videoId: string) { + for (const server of servers) { + await server.liveCommand.waitUntilSaved({ videoId }) + } + } + before(async function () { this.timeout(120000) @@ -86,21 +96,15 @@ describe('Save replay setting', function () { // Server 1 and server 2 follow each other await doubleFollow(servers[0], servers[1]) - await updateCustomSubConfig(servers[0].url, servers[0].accessToken, { - live: { - enabled: true, - allowReplay: true, - maxDuration: -1, - transcoding: { - enabled: false, - resolutions: { - '240p': true, - '360p': true, - '480p': true, - '720p': true, - '1080p': true, - '1440p': true, - '2160p': true + await servers[0].configCommand.updateCustomSubConfig({ + newConfig: { + live: { + enabled: true, + allowReplay: true, + maxDuration: -1, + transcoding: { + enabled: false, + resolutions: ConfigCommand.getCustomConfigResolutions(true) } } } @@ -125,10 +129,11 @@ describe('Save replay setting', function () { }) it('Should correctly have updated the live and federated it when streaming in the live', async function () { - this.timeout(20000) + this.timeout(30000) + + ffmpegCommand = await servers[0].liveCommand.sendRTMPStreamInVideo({ videoId: liveVideoUUID }) - ffmpegCommand = await sendRTMPStreamInVideo(servers[0].url, servers[0].accessToken, liveVideoUUID) - await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoUUID) + await waitUntilLivePublishedOnAllServers(liveVideoUUID) await waitJobs(servers) @@ -141,14 +146,15 @@ describe('Save replay setting', function () { await stopFfmpeg(ffmpegCommand) + for (const server of servers) { + await server.liveCommand.waitUntilEnded({ videoId: liveVideoUUID }) + } await waitJobs(servers) // Live still exist, but cannot be played anymore await checkVideosExist(liveVideoUUID, false, HttpStatusCode.OK_200) await checkVideoState(liveVideoUUID, VideoState.LIVE_ENDED) - await waitJobs(servers) - // No resolutions saved since we did not save replay await checkLiveCleanup(servers[0], liveVideoUUID, []) }) @@ -158,8 +164,9 @@ describe('Save replay setting', function () { liveVideoUUID = await createLiveWrapper(false) - ffmpegCommand = await sendRTMPStreamInVideo(servers[0].url, servers[0].accessToken, liveVideoUUID) - await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoUUID) + ffmpegCommand = await servers[0].liveCommand.sendRTMPStreamInVideo({ videoId: liveVideoUUID }) + + await waitUntilLivePublishedOnAllServers(liveVideoUUID) await waitJobs(servers) await checkVideosExist(liveVideoUUID, true, HttpStatusCode.OK_200) @@ -176,6 +183,8 @@ describe('Save replay setting', function () { await getVideo(servers[0].url, liveVideoUUID, HttpStatusCode.UNAUTHORIZED_401) await getVideo(servers[1].url, liveVideoUUID, HttpStatusCode.NOT_FOUND_404) + await wait(5000) + await waitJobs(servers) await checkLiveCleanup(servers[0], liveVideoUUID, []) }) @@ -184,8 +193,9 @@ describe('Save replay setting', function () { liveVideoUUID = await createLiveWrapper(false) - ffmpegCommand = await sendRTMPStreamInVideo(servers[0].url, servers[0].accessToken, liveVideoUUID) - await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoUUID) + ffmpegCommand = await servers[0].liveCommand.sendRTMPStreamInVideo({ videoId: liveVideoUUID }) + + await waitUntilLivePublishedOnAllServers(liveVideoUUID) await waitJobs(servers) await checkVideosExist(liveVideoUUID, true, HttpStatusCode.OK_200) @@ -195,6 +205,7 @@ describe('Save replay setting', function () { removeVideo(servers[0].url, servers[0].accessToken, liveVideoUUID) ]) + await wait(5000) await waitJobs(servers) await checkVideosExist(liveVideoUUID, false, HttpStatusCode.NOT_FOUND_404) @@ -218,8 +229,8 @@ describe('Save replay setting', function () { it('Should correctly have updated the live and federated it when streaming in the live', async function () { this.timeout(20000) - ffmpegCommand = await sendRTMPStreamInVideo(servers[0].url, servers[0].accessToken, liveVideoUUID) - await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoUUID) + ffmpegCommand = await servers[0].liveCommand.sendRTMPStreamInVideo({ videoId: liveVideoUUID }) + await waitUntilLivePublishedOnAllServers(liveVideoUUID) await waitJobs(servers) @@ -232,6 +243,7 @@ describe('Save replay setting', function () { await stopFfmpeg(ffmpegCommand) + await waitUntilLiveSavedOnAllServers(liveVideoUUID) await waitJobs(servers) // Live has been transcoded @@ -261,8 +273,8 @@ describe('Save replay setting', function () { liveVideoUUID = await createLiveWrapper(true) - ffmpegCommand = await sendRTMPStreamInVideo(servers[0].url, servers[0].accessToken, liveVideoUUID) - await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoUUID) + ffmpegCommand = await servers[0].liveCommand.sendRTMPStreamInVideo({ videoId: liveVideoUUID }) + await waitUntilLivePublishedOnAllServers(liveVideoUUID) await waitJobs(servers) await checkVideosExist(liveVideoUUID, true, HttpStatusCode.OK_200) @@ -279,6 +291,8 @@ describe('Save replay setting', function () { await getVideo(servers[0].url, liveVideoUUID, HttpStatusCode.UNAUTHORIZED_401) await getVideo(servers[1].url, liveVideoUUID, HttpStatusCode.NOT_FOUND_404) + await wait(5000) + await waitJobs(servers) await checkLiveCleanup(servers[0], liveVideoUUID, [ 720 ]) }) @@ -287,8 +301,8 @@ describe('Save replay setting', function () { liveVideoUUID = await createLiveWrapper(true) - ffmpegCommand = await sendRTMPStreamInVideo(servers[0].url, servers[0].accessToken, liveVideoUUID) - await waitUntilLivePublished(servers[0].url, servers[0].accessToken, liveVideoUUID) + ffmpegCommand = await servers[0].liveCommand.sendRTMPStreamInVideo({ videoId: liveVideoUUID }) + await waitUntilLivePublishedOnAllServers(liveVideoUUID) await waitJobs(servers) await checkVideosExist(liveVideoUUID, true, HttpStatusCode.OK_200) @@ -298,6 +312,7 @@ describe('Save replay setting', function () { testFfmpegStreamError(ffmpegCommand, true) ]) + await wait(5000) await waitJobs(servers) await checkVideosExist(liveVideoUUID, false, HttpStatusCode.NOT_FOUND_404)