/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
import 'mocha'
-import { omit } from 'lodash'
+import { merge, omit } from 'lodash'
+import { CustomConfig, HttpStatusCode } from '@shared/models'
import {
cleanupTests,
createSingleServer,
makePutBodyRequest,
PeerTubeServer,
setAccessTokensToServers
-} from '@shared/extra-utils'
-import { CustomConfig, HttpStatusCode } from '@shared/models'
+} from '@shared/server-commands'
describe('Test config API validators', function () {
const path = '/api/v1/config/custom'
whitelisted: true
}
},
+ client: {
+ videos: {
+ miniature: {
+ preferAuthorDisplayName: false
+ }
+ },
+ menu: {
+ login: {
+ redirectOnSingleExternalAuth: false
+ }
+ }
+ },
cache: {
previews: {
size: 2
videoQuota: 5242881,
videoQuotaDaily: 318742
},
+ videoChannels: {
+ maxPerUser: 20
+ },
transcoding: {
enabled: true,
allowAdditionalExtensions: true,
profile: 'vod_profile',
resolutions: {
'0p': false,
+ '144p': false,
'240p': false,
'360p': true,
'480p': true,
'1440p': false,
'2160p': false
},
+ alwaysTranscodeOriginalResolution: false,
webtorrent: {
enabled: true
},
enabled: true,
allowReplay: false,
+ latencySetting: {
+ enabled: false
+ },
maxDuration: 30,
maxInstanceLives: -1,
maxUserLives: 50,
threads: 4,
profile: 'live_profile',
resolutions: {
+ '144p': true,
'240p': true,
'360p': true,
'480p': true,
'1080p': true,
'1440p': true,
'2160p': true
- }
+ },
+ alwaysTranscodeOriginalResolution: false
}
},
+ videoStudio: {
+ enabled: true
+ },
import: {
videos: {
concurrency: 1,
torrent: {
enabled: false
}
+ },
+ videoChannelSynchronization: {
+ enabled: false,
+ maxPerUser: 10
}
},
trending: {
videos: {
algorithms: {
- enabled: [ 'best', 'hot', 'most-viewed', 'most-liked' ],
+ enabled: [ 'hot', 'most-viewed', 'most-liked' ],
default: 'most-viewed'
}
}
})
})
- it('Should success with the correct parameters', async function () {
+ it('Should fail with a disabled http upload & enabled sync', async function () {
+ const newUpdateParams: CustomConfig = merge({}, updateParams, {
+ import: {
+ videos: {
+ http: { enabled: false }
+ },
+ videoChannelSynchronization: { enabled: true }
+ }
+ })
+
+ await makePutBodyRequest({
+ url: server.url,
+ path,
+ fields: newUpdateParams,
+ token: server.accessToken,
+ expectedStatus: HttpStatusCode.BAD_REQUEST_400
+ })
+ })
+
+ it('Should succeed with the correct parameters', async function () {
await makePutBodyRequest({
url: server.url,
path,