1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
4 import * as chai from 'chai'
5 import { HttpStatusCode } from '@shared/models'
12 setAccessTokensToServers
13 } from '../../../../shared/extra-utils/index'
15 const expect = chai.expect
17 async function getHomepageState (server: PeerTubeServer) {
18 const config = await server.config.getConfig()
20 return config.homepage.enabled
23 describe('Test instance homepage actions', function () {
24 let server: PeerTubeServer
25 let command: CustomPagesCommand
27 before(async function () {
30 server = await createSingleServer(1)
31 await setAccessTokensToServers([ server ])
33 command = server.customPage
36 it('Should not have a homepage', async function () {
37 const state = await getHomepageState(server)
38 expect(state).to.be.false
40 await command.getInstanceHomepage({ expectedStatus: HttpStatusCode.NOT_FOUND_404 })
43 it('Should set a homepage', async function () {
44 await command.updateInstanceHomepage({ content: '<picsou-magazine></picsou-magazine>' })
46 const page = await command.getInstanceHomepage()
47 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
49 const state = await getHomepageState(server)
50 expect(state).to.be.true
53 it('Should have the same homepage after a restart', async function () {
56 await killallServers([ server ])
60 const page = await command.getInstanceHomepage()
61 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
63 const state = await getHomepageState(server)
64 expect(state).to.be.true
67 it('Should empty the homepage', async function () {
68 await command.updateInstanceHomepage({ content: '' })
70 const page = await command.getInstanceHomepage()
71 expect(page.content).to.be.empty
73 const state = await getHomepageState(server)
74 expect(state).to.be.false
77 after(async function () {
78 await cleanupTests([ server ])