1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
4 import * as chai from 'chai'
5 import { HttpStatusCode } from '@shared/core-utils'
13 setAccessTokensToServers
14 } from '../../../../shared/extra-utils/index'
16 const expect = chai.expect
18 async function getHomepageState (server: ServerInfo) {
19 const config = await server.configCommand.getConfig()
21 return config.homepage.enabled
24 describe('Test instance homepage actions', function () {
25 let server: ServerInfo
26 let command: CustomPagesCommand
28 before(async function () {
31 server = await flushAndRunServer(1)
32 await setAccessTokensToServers([ server ])
34 command = server.customPageCommand
37 it('Should not have a homepage', async function () {
38 const state = await getHomepageState(server)
39 expect(state).to.be.false
41 await command.getInstanceHomepage({ expectedStatus: HttpStatusCode.NOT_FOUND_404 })
44 it('Should set a homepage', async function () {
45 await command.updateInstanceHomepage({ content: '<picsou-magazine></picsou-magazine>' })
47 const page = await command.getInstanceHomepage()
48 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
50 const state = await getHomepageState(server)
51 expect(state).to.be.true
54 it('Should have the same homepage after a restart', async function () {
57 killallServers([ server ])
59 await reRunServer(server)
61 const page = await command.getInstanceHomepage()
62 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
64 const state = await getHomepageState(server)
65 expect(state).to.be.true
68 it('Should empty the homepage', async function () {
69 await command.updateInstanceHomepage({ content: '' })
71 const page = await command.getInstanceHomepage()
72 expect(page.content).to.be.empty
74 const state = await getHomepageState(server)
75 expect(state).to.be.false
78 after(async function () {
79 await cleanupTests([ server ])