X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fserver%2Fconfig.ts;h=ca389b7b6b64c126d249464809024556ddfa0127;hb=bec4ea343987c69252b84d02f444c0f033d4a3f9;hp=7d21b6ce9cfdb2a116fdbb58766cd1d88c81c946;hpb=e032aec9b92be25a996923361f83a96a89505254;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/server/config.ts b/server/tests/api/server/config.ts index 7d21b6ce9..ca389b7b6 100644 --- a/server/tests/api/server/config.ts +++ b/server/tests/api/server/config.ts @@ -4,17 +4,24 @@ import 'mocha' import * as chai from 'chai' import { About } from '../../../../shared/models/server/about.model' import { CustomConfig } from '../../../../shared/models/server/custom-config.model' -import { deleteCustomConfig, getAbout, killallServers, makeHTMLRequest, reRunServer } from '../../utils' -const expect = chai.expect - import { + cleanupTests, + deleteCustomConfig, + flushAndRunServer, + getAbout, getConfig, - flushTests, - runServer, - registerUser, getCustomConfig, setAccessTokensToServers, updateCustomConfig -} from '../../utils/index' + getCustomConfig, + killallServers, parallelTests, + registerUser, + reRunServer, ServerInfo, + setAccessTokensToServers, + updateCustomConfig +} from '../../../../shared/extra-utils' +import { ServerConfig } from '../../../../shared/models' + +const expect = chai.expect -function checkInitialConfig (data: CustomConfig) { +function checkInitialConfig (server: ServerInfo, data: CustomConfig) { expect(data.instance.name).to.equal('PeerTube') expect(data.instance.shortDescription).to.equal( 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser ' + @@ -23,24 +30,42 @@ function checkInitialConfig (data: CustomConfig) { expect(data.instance.description).to.equal('Welcome to this PeerTube instance!') expect(data.instance.terms).to.equal('No terms for now.') expect(data.instance.defaultClientRoute).to.equal('/videos/trending') + expect(data.instance.isNSFW).to.be.false expect(data.instance.defaultNSFWPolicy).to.equal('display') expect(data.instance.customizations.css).to.be.empty expect(data.instance.customizations.javascript).to.be.empty + expect(data.services.twitter.username).to.equal('@Chocobozzz') expect(data.services.twitter.whitelisted).to.be.false + expect(data.cache.previews.size).to.equal(1) expect(data.cache.captions.size).to.equal(1) + expect(data.signup.enabled).to.be.true expect(data.signup.limit).to.equal(4) - expect(data.admin.email).to.equal('admin1@example.com') + 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.videoQuota).to.equal(5242880) + expect(data.user.videoQuotaDaily).to.equal(-1) expect(data.transcoding.enabled).to.be.false + expect(data.transcoding.allowAdditionalExtensions).to.be.false expect(data.transcoding.threads).to.equal(2) expect(data.transcoding.resolutions['240p']).to.be.true expect(data.transcoding.resolutions['360p']).to.be.true expect(data.transcoding.resolutions['480p']).to.be.true expect(data.transcoding.resolutions['720p']).to.be.true expect(data.transcoding.resolutions['1080p']).to.be.true + expect(data.transcoding.hls.enabled).to.be.true + + expect(data.import.videos.http.enabled).to.be.true + expect(data.import.videos.torrent.enabled).to.be.true + expect(data.autoBlacklist.videos.ofUsers.enabled).to.be.false + + expect(data.followers.instance.enabled).to.be.true + expect(data.followers.instance.manualApproval).to.be.false } function checkUpdatedConfig (data: CustomConfig) { @@ -49,30 +74,47 @@ function checkUpdatedConfig (data: CustomConfig) { expect(data.instance.description).to.equal('my super description') expect(data.instance.terms).to.equal('my super terms') expect(data.instance.defaultClientRoute).to.equal('/videos/recently-added') + expect(data.instance.isNSFW).to.be.true expect(data.instance.defaultNSFWPolicy).to.equal('blur') expect(data.instance.customizations.javascript).to.equal('alert("coucou")') expect(data.instance.customizations.css).to.equal('body { background-color: red; }') + expect(data.services.twitter.username).to.equal('@Kuja') expect(data.services.twitter.whitelisted).to.be.true + expect(data.cache.previews.size).to.equal(2) expect(data.cache.captions.size).to.equal(3) + expect(data.signup.enabled).to.be.false expect(data.signup.limit).to.equal(5) - expect(data.admin.email).to.equal('superadmin1@example.com') + expect(data.signup.requiresEmailVerification).to.be.false + + // We override admin email in parallel tests, so skip this exception + if (parallelTests() === false) { + expect(data.admin.email).to.equal('superadmin1@example.com') + } + + expect(data.contactForm.enabled).to.be.false + expect(data.user.videoQuota).to.equal(5242881) + expect(data.user.videoQuotaDaily).to.equal(318742) + expect(data.transcoding.enabled).to.be.true expect(data.transcoding.threads).to.equal(1) + expect(data.transcoding.allowAdditionalExtensions).to.be.true expect(data.transcoding.resolutions['240p']).to.be.false expect(data.transcoding.resolutions['360p']).to.be.true expect(data.transcoding.resolutions['480p']).to.be.true expect(data.transcoding.resolutions['720p']).to.be.false expect(data.transcoding.resolutions['1080p']).to.be.false -} + expect(data.transcoding.hls.enabled).to.be.false -function checkIndexTags (html: string, title: string, description: string, css: string) { - expect(html).to.contain('' + title + '') - expect(html).to.contain('') - expect(html).to.contain('') + expect(data.import.videos.http.enabled).to.be.false + expect(data.import.videos.torrent.enabled).to.be.false + expect(data.autoBlacklist.videos.ofUsers.enabled).to.be.true + + expect(data.followers.instance.enabled).to.be.false + expect(data.followers.instance.manualApproval).to.be.true } describe('Test config', function () { @@ -81,14 +123,13 @@ describe('Test config', function () { before(async function () { this.timeout(30000) - await flushTests() - server = await runServer(1) + server = await flushAndRunServer(1) await setAccessTokensToServers([ server ]) }) it('Should have a correct config on a server with registration enabled', async function () { const res = await getConfig(server.url) - const data = res.body + const data: ServerConfig = res.body expect(data.signup.allowed).to.be.true }) @@ -103,24 +144,28 @@ describe('Test config', function () { ]) const res = await getConfig(server.url) - const data = res.body + const data: ServerConfig = res.body expect(data.signup.allowed).to.be.false }) - it('Should get the customized configuration', async function () { - const res = await getCustomConfig(server.url, server.accessToken) - const data = res.body as CustomConfig + it('Should have the correct video allowed extensions', async function () { + const res = await getConfig(server.url) + const data: ServerConfig = res.body + + expect(data.video.file.extensions).to.have.lengthOf(3) + expect(data.video.file.extensions).to.contain('.mp4') + expect(data.video.file.extensions).to.contain('.webm') + expect(data.video.file.extensions).to.contain('.ogv') - checkInitialConfig(data) + expect(data.contactForm.enabled).to.be.true }) - it('Should have valid index html tags (title, description...)', async function () { - const res = await makeHTMLRequest(server.url, '/videos/trending') + it('Should get the customized configuration', async function () { + const res = await getCustomConfig(server.url, server.accessToken) + const data = res.body as CustomConfig - const description = 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser ' + - 'with WebTorrent and Angular.' - checkIndexTags(res.text, 'PeerTube', description, '') + checkInitialConfig(server, data) }) it('Should update the customized configuration', async function () { @@ -131,6 +176,7 @@ describe('Test config', function () { description: 'my super description', terms: 'my super terms', defaultClientRoute: '/videos/recently-added', + isNSFW: true, defaultNSFWPolicy: 'blur' as 'blur', customizations: { javascript: 'alert("coucou")', @@ -153,16 +199,22 @@ describe('Test config', function () { }, signup: { enabled: false, - limit: 5 + limit: 5, + requiresEmailVerification: false }, admin: { email: 'superadmin1@example.com' }, + contactForm: { + enabled: false + }, user: { - videoQuota: 5242881 + videoQuota: 5242881, + videoQuotaDaily: 318742 }, transcoding: { enabled: true, + allowAdditionalExtensions: true, threads: 1, resolutions: { '240p': false, @@ -170,6 +222,32 @@ describe('Test config', function () { '480p': true, '720p': false, '1080p': false + }, + hls: { + enabled: false + } + }, + import: { + videos: { + http: { + enabled: false + }, + torrent: { + enabled: false + } + } + }, + autoBlacklist: { + videos: { + ofUsers: { + enabled: true + } + } + }, + followers: { + instance: { + enabled: false, + manualApproval: true } } } @@ -181,10 +259,16 @@ describe('Test config', function () { checkUpdatedConfig(data) }) - it('Should have valid index html updated tags (title, description...)', async function () { - const res = await makeHTMLRequest(server.url, '/videos/trending') - - checkIndexTags(res.text, 'PeerTube updated', 'my short description', 'body { background-color: red; }') + it('Should have the correct updated video allowed extensions', async function () { + const res = await getConfig(server.url) + const data: ServerConfig = res.body + + expect(data.video.file.extensions).to.have.length.above(3) + expect(data.video.file.extensions).to.contain('.mp4') + expect(data.video.file.extensions).to.contain('.webm') + expect(data.video.file.extensions).to.contain('.ogv') + expect(data.video.file.extensions).to.contain('.flv') + expect(data.video.file.extensions).to.contain('.mkv') }) it('Should have the configuration updated after a restart', async function () { @@ -198,10 +282,6 @@ describe('Test config', function () { const data = res.body checkUpdatedConfig(data) - - // Check HTML too - const resHtml = await makeHTMLRequest(server.url, '/videos/trending') - checkIndexTags(resHtml.text, 'PeerTube updated', 'my short description', 'body { background-color: red; }') }) it('Should fetch the about information', async function () { @@ -222,10 +302,10 @@ describe('Test config', function () { const res = await getCustomConfig(server.url, server.accessToken) const data = res.body - checkInitialConfig(data) + checkInitialConfig(server, data) }) after(async function () { - killallServers([ server ]) + await cleanupTests([ server ]) }) })