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