Refactor a little bit live tests

This commit is contained in:
Chocobozzz 2021-05-07 11:53:46 +02:00
parent bc4c9cc1d7
commit a1bb73f9b5
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
5 changed files with 59 additions and 79 deletions

View File

@ -2,15 +2,15 @@
import 'mocha'
import * as chai from 'chai'
import { User, VideoDetails, VideoPrivacy } from '@shared/models'
import { VideoDetails, VideoPrivacy } from '@shared/models'
import {
checkLiveCleanup,
cleanupTests,
createLive,
createUser,
doubleFollow,
flushAndRunMultipleServers,
getMyUserInformation,
generateUser,
getCustomConfigResolutions,
getVideo,
runAndTestFfmpegStreamError,
ServerInfo,
@ -18,7 +18,6 @@ import {
setDefaultVideoChannel,
updateCustomSubConfig,
updateUser,
userLogin,
wait,
waitJobs,
waitUntilLivePublished
@ -62,6 +61,16 @@ describe('Test live constraints', function () {
}
}
function updateQuota (options: { total: number, daily: number }) {
return updateUser({
url: servers[0].url,
accessToken: servers[0].accessToken,
userId,
videoQuota: options.total,
videoQuotaDaily: options.daily
})
}
before(async function () {
this.timeout(120000)
@ -82,27 +91,12 @@ describe('Test live constraints', function () {
})
{
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
const res = await generateUser(servers[0], 'user1')
userId = res.userId
userChannelId = res.userChannelId
userAccessToken = res.token
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
})
await updateQuota({ total: 1, daily: -1 })
}
// Server 1 and server 2 follow each other
@ -137,13 +131,7 @@ 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)
@ -160,13 +148,7 @@ 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)
@ -182,15 +164,7 @@ describe('Test live constraints', function () {
maxDuration: 1,
transcoding: {
enabled: true,
resolutions: {
'240p': true,
'360p': true,
'480p': true,
'720p': true,
'1080p': true,
'1440p': true,
'2160p': true
}
resolutions: getCustomConfigResolutions(true)
}
}
})

View File

@ -8,6 +8,7 @@ import {
createLive,
doubleFollow,
flushAndRunMultipleServers,
getCustomConfigResolutions,
getLive,
getPlaylistsCount,
getVideo,
@ -69,15 +70,7 @@ describe('Permenant live', function () {
maxDuration: -1,
transcoding: {
enabled: true,
resolutions: {
'240p': true,
'360p': true,
'480p': true,
'720p': true,
'1080p': true,
'1440p': true,
'2160p': true
}
resolutions: getCustomConfigResolutions(true)
}
}
})
@ -159,15 +152,7 @@ describe('Permenant live', function () {
maxDuration: -1,
transcoding: {
enabled: true,
resolutions: {
'240p': false,
'360p': false,
'480p': false,
'720p': false,
'1080p': false,
'1440p': false,
'2160p': false
}
resolutions: getCustomConfigResolutions(false)
}
}
})

View File

@ -12,6 +12,7 @@ import {
createLive,
doubleFollow,
flushAndRunMultipleServers,
getCustomConfigResolutions,
getVideo,
getVideosList,
removeVideo,
@ -108,15 +109,7 @@ describe('Save replay setting', function () {
maxDuration: -1,
transcoding: {
enabled: false,
resolutions: {
'240p': true,
'360p': true,
'480p': true,
'720p': true,
'1080p': true,
'1440p': true,
'2160p': true
}
resolutions: getCustomConfigResolutions(true)
}
}
})

View File

@ -223,6 +223,18 @@ function updateCustomSubConfig (url: string, token: string, newConfig: DeepParti
return updateCustomConfig(url, token, updateParams)
}
function getCustomConfigResolutions (enabled: boolean) {
return {
'240p': enabled,
'360p': enabled,
'480p': enabled,
'720p': enabled,
'1080p': enabled,
'1440p': enabled,
'2160p': enabled
}
}
function deleteCustomConfig (url: string, token: string, statusCodeExpected = HttpStatusCode.OK_200) {
const path = '/api/v1/config/custom'
@ -242,5 +254,6 @@ export {
updateCustomConfig,
getAbout,
deleteCustomConfig,
updateCustomSubConfig
updateCustomSubConfig,
getCustomConfigResolutions
}

View File

@ -1,5 +1,6 @@
import { omit } from 'lodash'
import * as request from 'supertest'
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
import { UserUpdateMe } from '../../models/users'
import { UserAdminFlag } from '../../models/users/user-flag.model'
import { UserRegister } from '../../models/users/user-register.model'
@ -7,9 +8,8 @@ import { UserRole } from '../../models/users/user-role'
import { makeGetRequest, makePostBodyRequest, makePutBodyRequest, updateImageRequest } from '../requests/requests'
import { ServerInfo } from '../server/servers'
import { userLogin } from './login'
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
type CreateUserArgs = {
function createUser (parameters: {
url: string
accessToken: string
username: string
@ -19,8 +19,7 @@ type CreateUserArgs = {
role?: UserRole
adminFlags?: UserAdminFlag
specialStatus?: number
}
function createUser (parameters: CreateUserArgs) {
}) {
const {
url,
accessToken,
@ -52,6 +51,21 @@ function createUser (parameters: CreateUserArgs) {
.expect(specialStatus)
}
async function generateUser (server: ServerInfo, username: string) {
const password = 'my super password'
const resCreate = await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
const token = await userLogin(server, { username, password })
const resMe = await getMyUserInformation(server.url, token)
return {
token,
userId: resCreate.body.user.id,
userChannelId: resMe.body.videoChannels[0].id
}
}
async function generateUserAccessToken (server: ServerInfo, username: string) {
const password = 'my super password'
await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
@ -393,6 +407,7 @@ export {
resetPassword,
renewUserScopedTokens,
updateMyAvatar,
generateUser,
askSendVerifyEmail,
generateUserAccessToken,
verifyEmail,