aboutsummaryrefslogtreecommitdiffhomepage
path: root/packages/tests/src/api/server/homepage.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/tests/src/api/server/homepage.ts')
-rw-r--r--packages/tests/src/api/server/homepage.ts81
1 files changed, 81 insertions, 0 deletions
diff --git a/packages/tests/src/api/server/homepage.ts b/packages/tests/src/api/server/homepage.ts
new file mode 100644
index 000000000..082a2fb91
--- /dev/null
+++ b/packages/tests/src/api/server/homepage.ts
@@ -0,0 +1,81 @@
1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
2
3import { expect } from 'chai'
4import { HttpStatusCode } from '@peertube/peertube-models'
5import {
6 cleanupTests,
7 createSingleServer,
8 CustomPagesCommand,
9 killallServers,
10 PeerTubeServer,
11 setAccessTokensToServers,
12 setDefaultAccountAvatar,
13 setDefaultChannelAvatar
14} from '@peertube/peertube-server-commands'
15
16async function getHomepageState (server: PeerTubeServer) {
17 const config = await server.config.getConfig()
18
19 return config.homepage.enabled
20}
21
22describe('Test instance homepage actions', function () {
23 let server: PeerTubeServer
24 let command: CustomPagesCommand
25
26 before(async function () {
27 this.timeout(30000)
28
29 server = await createSingleServer(1)
30 await setAccessTokensToServers([ server ])
31 await setDefaultChannelAvatar(server)
32 await setDefaultAccountAvatar(server)
33
34 command = server.customPage
35 })
36
37 it('Should not have a homepage', async function () {
38 const state = await getHomepageState(server)
39 expect(state).to.be.false
40
41 await command.getInstanceHomepage({ expectedStatus: HttpStatusCode.NOT_FOUND_404 })
42 })
43
44 it('Should set a homepage', async function () {
45 await command.updateInstanceHomepage({ content: '<picsou-magazine></picsou-magazine>' })
46
47 const page = await command.getInstanceHomepage()
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
57 await killallServers([ server ])
58
59 await server.run()
60
61 const page = await command.getInstanceHomepage()
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 () {
69 await command.updateInstanceHomepage({ content: '' })
70
71 const page = await command.getInstanceHomepage()
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})