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