X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Flive%2Flive-constraints.ts;h=4acde3cc55af033a1dbcfb8c1cc9dc6b0f6545c0;hb=421ff4618da64f0849353383f690a014024c40da;hp=5569e6066999a40f52d9ea4b22e2d55625809e36;hpb=300cb723eb9bd219e6d381c57a8a6a860563bbbb;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/live/live-constraints.ts b/server/tests/api/live/live-constraints.ts index 5569e6066..4acde3cc5 100644 --- a/server/tests/api/live/live-constraints.ts +++ b/server/tests/api/live/live-constraints.ts @@ -2,32 +2,24 @@ import 'mocha' import * as chai from 'chai' -import { User, VideoDetails, VideoPrivacy } from '@shared/models' +import { VideoPrivacy } from '@shared/models' import { - checkLiveCleanup, + checkLiveCleanupAfterSave, cleanupTests, - createLive, - createUser, + ConfigCommand, + createMultipleServers, doubleFollow, - flushAndRunMultipleServers, - getMyUserInformation, - getVideo, - runAndTestFfmpegStreamError, - ServerInfo, + PeerTubeServer, setAccessTokensToServers, setDefaultVideoChannel, - updateCustomSubConfig, - updateUser, - userLogin, wait, - waitJobs, - waitUntilLivePublished + waitJobs } from '../../../../shared/extra-utils' const expect = chai.expect describe('Test live constraints', function () { - let servers: ServerInfo[] = [] + let servers: PeerTubeServer[] = [] let userId: number let userAccessToken: string let userChannelId: number @@ -40,69 +32,62 @@ describe('Test live constraints', function () { saveReplay } - const res = await createLive(servers[0].url, userAccessToken, liveAttributes) - return res.body.video.uuid as string + const { uuid } = await servers[0].live.create({ token: userAccessToken, fields: liveAttributes }) + return uuid } async function checkSaveReplay (videoId: string, resolutions = [ 720 ]) { for (const server of servers) { - const res = await getVideo(server.url, videoId) - - const video: VideoDetails = res.body + const video = await server.videos.get({ id: videoId }) expect(video.isLive).to.be.false expect(video.duration).to.be.greaterThan(0) } - await checkLiveCleanup(servers[0], videoId, resolutions) + await checkLiveCleanupAfterSave(servers[0], videoId, resolutions) } async function waitUntilLivePublishedOnAllServers (videoId: string) { for (const server of servers) { - await waitUntilLivePublished(server.url, server.accessToken, videoId) + await server.live.waitUntilPublished({ videoId }) } } + function updateQuota (options: { total: number, daily: number }) { + return servers[0].users.update({ + userId, + videoQuota: options.total, + videoQuotaDaily: options.daily + }) + } + before(async function () { this.timeout(120000) - servers = await flushAndRunMultipleServers(2) + servers = await createMultipleServers(2) // Get the access tokens await setAccessTokensToServers(servers) await setDefaultVideoChannel(servers) - await updateCustomSubConfig(servers[0].url, servers[0].accessToken, { - live: { - enabled: true, - allowReplay: true, - transcoding: { - enabled: false + await servers[0].config.updateCustomSubConfig({ + newConfig: { + live: { + enabled: true, + allowReplay: true, + transcoding: { + enabled: false + } } } }) { - const user = { username: 'user1', password: 'superpassword' } - const res = await createUser({ - url: servers[0].url, - accessToken: servers[0].accessToken, - username: user.username, - password: user.password - }) - userId = res.body.user.id - - userAccessToken = await userLogin(servers[0], user) - - const resMe = await getMyUserInformation(servers[0].url, userAccessToken) - userChannelId = (resMe.body as User).videoChannels[0].id - - await updateUser({ - url: servers[0].url, - userId, - accessToken: servers[0].accessToken, - videoQuota: 1, - videoQuotaDaily: -1 - }) + const res = await servers[0].users.generate('user1') + userId = res.userId + userChannelId = res.userChannelId + userAccessToken = res.token + + await updateQuota({ total: 1, daily: -1 }) } // Server 1 and server 2 follow each other @@ -113,7 +98,7 @@ describe('Test live constraints', function () { this.timeout(60000) const userVideoLiveoId = await createLiveWrapper(false) - await runAndTestFfmpegStreamError(servers[0].url, userAccessToken, userVideoLiveoId, false) + await servers[0].live.runAndTestStreamError({ token: userAccessToken, videoId: userVideoLiveoId, shouldHaveError: false }) }) it('Should have size limit depending on user global quota if save replay is enabled', async function () { @@ -123,7 +108,7 @@ describe('Test live constraints', function () { await wait(5000) const userVideoLiveoId = await createLiveWrapper(true) - await runAndTestFfmpegStreamError(servers[0].url, userAccessToken, userVideoLiveoId, true) + await servers[0].live.runAndTestStreamError({ token: userAccessToken, videoId: userVideoLiveoId, shouldHaveError: true }) await waitUntilLivePublishedOnAllServers(userVideoLiveoId) await waitJobs(servers) @@ -137,16 +122,10 @@ describe('Test live constraints', function () { // Wait for user quota memoize cache invalidation await wait(5000) - await updateUser({ - url: servers[0].url, - userId, - accessToken: servers[0].accessToken, - videoQuota: -1, - videoQuotaDaily: 1 - }) + await updateQuota({ total: -1, daily: 1 }) const userVideoLiveoId = await createLiveWrapper(true) - await runAndTestFfmpegStreamError(servers[0].url, userAccessToken, userVideoLiveoId, true) + await servers[0].live.runAndTestStreamError({ token: userAccessToken, videoId: userVideoLiveoId, shouldHaveError: true }) await waitUntilLivePublishedOnAllServers(userVideoLiveoId) await waitJobs(servers) @@ -160,43 +139,31 @@ describe('Test live constraints', function () { // Wait for user quota memoize cache invalidation await wait(5000) - await updateUser({ - url: servers[0].url, - userId, - accessToken: servers[0].accessToken, - videoQuota: 10 * 1000 * 1000, - videoQuotaDaily: -1 - }) + await updateQuota({ total: 10 * 1000 * 1000, daily: -1 }) const userVideoLiveoId = await createLiveWrapper(true) - await runAndTestFfmpegStreamError(servers[0].url, userAccessToken, userVideoLiveoId, false) + await servers[0].live.runAndTestStreamError({ token: userAccessToken, videoId: userVideoLiveoId, shouldHaveError: false }) }) it('Should have max duration limit', async function () { this.timeout(60000) - await updateCustomSubConfig(servers[0].url, servers[0].accessToken, { - live: { - enabled: true, - allowReplay: true, - maxDuration: 1, - transcoding: { + await servers[0].config.updateCustomSubConfig({ + newConfig: { + live: { enabled: true, - resolutions: { - '240p': true, - '360p': true, - '480p': true, - '720p': true, - '1080p': true, - '1440p': true, - '2160p': true + allowReplay: true, + maxDuration: 1, + transcoding: { + enabled: true, + resolutions: ConfigCommand.getCustomConfigResolutions(true) } } } }) const userVideoLiveoId = await createLiveWrapper(true) - await runAndTestFfmpegStreamError(servers[0].url, userAccessToken, userVideoLiveoId, true) + await servers[0].live.runAndTestStreamError({ token: userAccessToken, videoId: userVideoLiveoId, shouldHaveError: true }) await waitUntilLivePublishedOnAllServers(userVideoLiveoId) await waitJobs(servers)