X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fserver%2Fconfig.ts;h=54a40b994c7d65baa9145be3ca6f6bdeed1ab602;hb=d102de1b38f2877463529c3b27bd35ffef4fd8bf;hp=96ec17b0fce77cb2be2ec9badf49454d1fb818a9;hpb=0bc53e20296de68288481e2375b297626087174b;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/server/config.ts b/server/tests/api/server/config.ts index 96ec17b0f..54a40b994 100644 --- a/server/tests/api/server/config.ts +++ b/server/tests/api/server/config.ts @@ -1,19 +1,16 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ -import 'mocha' -import * as chai from 'chai' +import { expect } from 'chai' +import { parallelTests } from '@shared/core-utils' +import { CustomConfig, HttpStatusCode } from '@shared/models' import { cleanupTests, createSingleServer, killallServers, makeGetRequest, - parallelTests, PeerTubeServer, setAccessTokensToServers -} from '@shared/extra-utils' -import { CustomConfig, HttpStatusCode } from '@shared/models' - -const expect = chai.expect +} from '@shared/server-commands' function checkInitialConfig (server: PeerTubeServer, data: CustomConfig) { expect(data.instance.name).to.equal('PeerTube') @@ -53,17 +50,20 @@ function checkInitialConfig (server: PeerTubeServer, data: CustomConfig) { expect(data.signup.enabled).to.be.true expect(data.signup.limit).to.equal(4) expect(data.signup.minimumAge).to.equal(16) + expect(data.signup.requiresApproval).to.be.false expect(data.signup.requiresEmailVerification).to.be.false expect(data.admin.email).to.equal('admin' + server.internalServerNumber + '@example.com') expect(data.contactForm.enabled).to.be.true + expect(data.user.history.videos.enabled).to.be.true expect(data.user.videoQuota).to.equal(5242880) expect(data.user.videoQuotaDaily).to.equal(-1) expect(data.videoChannels.maxPerUser).to.equal(20) expect(data.transcoding.enabled).to.be.false + expect(data.transcoding.remoteRunners.enabled).to.be.false expect(data.transcoding.allowAdditionalExtensions).to.be.false expect(data.transcoding.allowAudioFiles).to.be.false expect(data.transcoding.threads).to.equal(2) @@ -77,15 +77,18 @@ function checkInitialConfig (server: PeerTubeServer, data: CustomConfig) { expect(data.transcoding.resolutions['1080p']).to.be.true expect(data.transcoding.resolutions['1440p']).to.be.true expect(data.transcoding.resolutions['2160p']).to.be.true + expect(data.transcoding.alwaysTranscodeOriginalResolution).to.be.true expect(data.transcoding.webtorrent.enabled).to.be.true expect(data.transcoding.hls.enabled).to.be.true expect(data.live.enabled).to.be.false expect(data.live.allowReplay).to.be.false + expect(data.live.latencySetting.enabled).to.be.true expect(data.live.maxDuration).to.equal(-1) expect(data.live.maxInstanceLives).to.equal(20) expect(data.live.maxUserLives).to.equal(3) expect(data.live.transcoding.enabled).to.be.false + expect(data.live.transcoding.remoteRunners.enabled).to.be.false expect(data.live.transcoding.threads).to.equal(2) expect(data.live.transcoding.profile).to.equal('default') expect(data.live.transcoding.resolutions['144p']).to.be.false @@ -96,6 +99,9 @@ function checkInitialConfig (server: PeerTubeServer, data: CustomConfig) { expect(data.live.transcoding.resolutions['1080p']).to.be.false expect(data.live.transcoding.resolutions['1440p']).to.be.false expect(data.live.transcoding.resolutions['2160p']).to.be.false + expect(data.live.transcoding.alwaysTranscodeOriginalResolution).to.be.true + + expect(data.videoStudio.enabled).to.be.false expect(data.import.videos.concurrency).to.equal(2) expect(data.import.videos.http.enabled).to.be.true @@ -150,6 +156,7 @@ function checkUpdatedConfig (data: CustomConfig) { expect(data.signup.enabled).to.be.false expect(data.signup.limit).to.equal(5) + expect(data.signup.requiresApproval).to.be.false expect(data.signup.requiresEmailVerification).to.be.false expect(data.signup.minimumAge).to.equal(10) @@ -160,12 +167,14 @@ function checkUpdatedConfig (data: CustomConfig) { expect(data.contactForm.enabled).to.be.false + expect(data.user.history.videos.enabled).to.be.false expect(data.user.videoQuota).to.equal(5242881) expect(data.user.videoQuotaDaily).to.equal(318742) expect(data.videoChannels.maxPerUser).to.equal(24) expect(data.transcoding.enabled).to.be.true + expect(data.transcoding.remoteRunners.enabled).to.be.true expect(data.transcoding.threads).to.equal(1) expect(data.transcoding.concurrency).to.equal(3) expect(data.transcoding.allowAdditionalExtensions).to.be.true @@ -178,15 +187,18 @@ function checkUpdatedConfig (data: CustomConfig) { expect(data.transcoding.resolutions['720p']).to.be.false expect(data.transcoding.resolutions['1080p']).to.be.false expect(data.transcoding.resolutions['2160p']).to.be.false + expect(data.transcoding.alwaysTranscodeOriginalResolution).to.be.false expect(data.transcoding.hls.enabled).to.be.false expect(data.transcoding.webtorrent.enabled).to.be.true expect(data.live.enabled).to.be.true expect(data.live.allowReplay).to.be.true + expect(data.live.latencySetting.enabled).to.be.false expect(data.live.maxDuration).to.equal(5000) expect(data.live.maxInstanceLives).to.equal(-1) expect(data.live.maxUserLives).to.equal(10) expect(data.live.transcoding.enabled).to.be.true + expect(data.live.transcoding.remoteRunners.enabled).to.be.true expect(data.live.transcoding.threads).to.equal(4) expect(data.live.transcoding.profile).to.equal('live_profile') expect(data.live.transcoding.resolutions['144p']).to.be.true @@ -196,6 +208,9 @@ function checkUpdatedConfig (data: CustomConfig) { expect(data.live.transcoding.resolutions['720p']).to.be.true expect(data.live.transcoding.resolutions['1080p']).to.be.true expect(data.live.transcoding.resolutions['2160p']).to.be.true + expect(data.live.transcoding.alwaysTranscodeOriginalResolution).to.be.false + + expect(data.videoStudio.enabled).to.be.true expect(data.import.videos.concurrency).to.equal(4) expect(data.import.videos.http.enabled).to.be.false @@ -278,6 +293,7 @@ const newCustomConfig: CustomConfig = { signup: { enabled: false, limit: 5, + requiresApproval: false, requiresEmailVerification: false, minimumAge: 10 }, @@ -288,6 +304,11 @@ const newCustomConfig: CustomConfig = { enabled: false }, user: { + history: { + videos: { + enabled: false + } + }, videoQuota: 5242881, videoQuotaDaily: 318742 }, @@ -296,6 +317,9 @@ const newCustomConfig: CustomConfig = { }, transcoding: { enabled: true, + remoteRunners: { + enabled: true + }, allowAdditionalExtensions: true, allowAudioFiles: true, threads: 1, @@ -312,6 +336,7 @@ const newCustomConfig: CustomConfig = { '1440p': false, '2160p': false }, + alwaysTranscodeOriginalResolution: false, webtorrent: { enabled: true }, @@ -322,11 +347,17 @@ const newCustomConfig: CustomConfig = { live: { enabled: true, allowReplay: true, + latencySetting: { + enabled: false + }, maxDuration: 5000, maxInstanceLives: -1, maxUserLives: 10, transcoding: { enabled: true, + remoteRunners: { + enabled: true + }, threads: 4, profile: 'live_profile', resolutions: { @@ -338,9 +369,13 @@ const newCustomConfig: CustomConfig = { '1080p': true, '1440p': true, '2160p': true - } + }, + alwaysTranscodeOriginalResolution: false } }, + videoStudio: { + enabled: true + }, import: { videos: { concurrency: 4, @@ -350,12 +385,16 @@ const newCustomConfig: CustomConfig = { 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: 'hot' } } @@ -449,9 +488,9 @@ describe('Test config', function () { this.timeout(5000) await Promise.all([ - server.users.register({ username: 'user1' }), - server.users.register({ username: 'user2' }), - server.users.register({ username: 'user3' }) + server.registrations.register({ username: 'user1' }), + server.registrations.register({ username: 'user2' }), + server.registrations.register({ username: 'user3' }) ]) const data = await server.config.getConfig() @@ -487,7 +526,7 @@ describe('Test config', function () { }) it('Should have the correct updated video allowed extensions', async function () { - this.timeout(10000) + this.timeout(30000) const data = await server.config.getConfig() @@ -539,15 +578,13 @@ describe('Test config', function () { }) it('Should remove the custom configuration', async function () { - this.timeout(10000) - await server.config.deleteCustomConfig() const data = await server.config.getCustomConfig() checkInitialConfig(server, data) }) - it('Should enable frameguard', async function () { + it('Should enable/disable security headers', async function () { this.timeout(25000) { @@ -558,13 +595,15 @@ describe('Test config', function () { }) expect(res.headers['x-frame-options']).to.exist + expect(res.headers['x-powered-by']).to.equal('PeerTube') } await killallServers([ server ]) const config = { security: { - frameguard: { enabled: false } + frameguard: { enabled: false }, + powered_by_header: { enabled: false } } } await server.run(config) @@ -577,6 +616,7 @@ describe('Test config', function () { }) expect(res.headers['x-frame-options']).to.not.exist + expect(res.headers['x-powered-by']).to.not.exist } })