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 setDefaultAccountAvatar,
14 setDefaultChannelAvatar
15 } from '../../../../shared/server-commands/index'
17 const expect = chai.expect
19 async function getHomepageState (server: PeerTubeServer) {
20 const config = await server.config.getConfig()
22 return config.homepage.enabled
25 describe('Test instance homepage actions', function () {
26 let server: PeerTubeServer
27 let command: CustomPagesCommand
29 before(async function () {
32 server = await createSingleServer(1)
33 await setAccessTokensToServers([ server ])
34 await setDefaultChannelAvatar(server)
35 await setDefaultAccountAvatar(server)
37 command = server.customPage
40 it('Should not have a homepage', async function () {
41 const state = await getHomepageState(server)
42 expect(state).to.be.false
44 await command.getInstanceHomepage({ expectedStatus: HttpStatusCode.NOT_FOUND_404 })
47 it('Should set a homepage', async function () {
48 await command.updateInstanceHomepage({ content: '<picsou-magazine></picsou-magazine>' })
50 const page = await command.getInstanceHomepage()
51 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
53 const state = await getHomepageState(server)
54 expect(state).to.be.true
57 it('Should have the same homepage after a restart', async function () {
60 await killallServers([ server ])
64 const page = await command.getInstanceHomepage()
65 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
67 const state = await getHomepageState(server)
68 expect(state).to.be.true
71 it('Should empty the homepage', async function () {
72 await command.updateInstanceHomepage({ content: '' })
74 const page = await command.getInstanceHomepage()
75 expect(page.content).to.be.empty
77 const state = await getHomepageState(server)
78 expect(state).to.be.false
81 after(async function () {
82 await cleanupTests([ server ])