]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/server/homepage.ts
We don't need to import mocha
[github/Chocobozzz/PeerTube.git] / server / tests / api / server / homepage.ts
1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
2
3 import * as chai from 'chai'
4 import { HttpStatusCode } from '@shared/models'
5 import {
6 cleanupTests,
7 createSingleServer,
8 CustomPagesCommand,
9 killallServers,
10 PeerTubeServer,
11 setAccessTokensToServers,
12 setDefaultAccountAvatar,
13 setDefaultChannelAvatar
14 } from '../../../../shared/server-commands/index'
15
16 const expect = chai.expect
17
18 async function getHomepageState (server: PeerTubeServer) {
19 const config = await server.config.getConfig()
20
21 return config.homepage.enabled
22 }
23
24 describe('Test instance homepage actions', function () {
25 let server: PeerTubeServer
26 let command: CustomPagesCommand
27
28 before(async function () {
29 this.timeout(30000)
30
31 server = await createSingleServer(1)
32 await setAccessTokensToServers([ server ])
33 await setDefaultChannelAvatar(server)
34 await setDefaultAccountAvatar(server)
35
36 command = server.customPage
37 })
38
39 it('Should not have a homepage', async function () {
40 const state = await getHomepageState(server)
41 expect(state).to.be.false
42
43 await command.getInstanceHomepage({ expectedStatus: HttpStatusCode.NOT_FOUND_404 })
44 })
45
46 it('Should set a homepage', async function () {
47 await command.updateInstanceHomepage({ content: '<picsou-magazine></picsou-magazine>' })
48
49 const page = await command.getInstanceHomepage()
50 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
51
52 const state = await getHomepageState(server)
53 expect(state).to.be.true
54 })
55
56 it('Should have the same homepage after a restart', async function () {
57 this.timeout(30000)
58
59 await killallServers([ server ])
60
61 await server.run()
62
63 const page = await command.getInstanceHomepage()
64 expect(page.content).to.equal('<picsou-magazine></picsou-magazine>')
65
66 const state = await getHomepageState(server)
67 expect(state).to.be.true
68 })
69
70 it('Should empty the homepage', async function () {
71 await command.updateInstanceHomepage({ content: '' })
72
73 const page = await command.getInstanceHomepage()
74 expect(page.content).to.be.empty
75
76 const state = await getHomepageState(server)
77 expect(state).to.be.false
78 })
79
80 after(async function () {
81 await cleanupTests([ server ])
82 })
83 })