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

View File

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

View File

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

View File

@ -223,6 +223,18 @@ function updateCustomSubConfig (url: string, token: string, newConfig: DeepParti
return updateCustomConfig(url, token, updateParams) 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) { function deleteCustomConfig (url: string, token: string, statusCodeExpected = HttpStatusCode.OK_200) {
const path = '/api/v1/config/custom' const path = '/api/v1/config/custom'
@ -242,5 +254,6 @@ export {
updateCustomConfig, updateCustomConfig,
getAbout, getAbout,
deleteCustomConfig, deleteCustomConfig,
updateCustomSubConfig updateCustomSubConfig,
getCustomConfigResolutions
} }

View File

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