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'
6 import { CustomPage, ServerConfig } from '@shared/models'
15 setAccessTokensToServers,
16 updateInstanceHomepage
17 } from '../../../../shared/extra-utils/index'
19 const expect = chai.expect
21 async function getHomepageState (server: ServerInfo) {
22 const res = await getConfig(server.url)
24 const config = res.body as ServerConfig
25 return config.homepage.enabled
28 describe('Test instance homepage actions', function () {
29 let server: ServerInfo
31 before(async function () {
34 server = await flushAndRunServer(1)
35 await setAccessTokensToServers([ server ])
38 it('Should not have a homepage', async function () {
39 const state = await getHomepageState(server)
40 expect(state).to.be.false
42 await getInstanceHomepage(server.url, HttpStatusCode.NOT_FOUND_404)
45 it('Should set a homepage', async function () {
46 await updateInstanceHomepage(server.url, server.accessToken, '<picsou-magazine></picsou-magazine>')
48 const res = await getInstanceHomepage(server.url)
49 const page: CustomPage = res.body
50 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
52 const state = await getHomepageState(server)
53 expect(state).to.be.true
56 it('Should have the same homepage after a restart', async function () {
59 killallServers([ server ])
61 await reRunServer(server)
63 const res = await getInstanceHomepage(server.url)
64 const page: CustomPage = res.body
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 updateInstanceHomepage(server.url, server.accessToken, '')
74 const res = await getInstanceHomepage(server.url)
75 const page: CustomPage = res.body
76 expect(page.content).to.be.empty
78 const state = await getHomepageState(server)
79 expect(state).to.be.false
82 after(async function () {
83 await cleanupTests([ server ])