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