diff options
Diffstat (limited to 'packages/tests/src/api/server/homepage.ts')
-rw-r--r-- | packages/tests/src/api/server/homepage.ts | 81 |
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 | |||
3 | import { expect } from 'chai' | ||
4 | import { HttpStatusCode } from '@peertube/peertube-models' | ||
5 | import { | ||
6 | cleanupTests, | ||
7 | createSingleServer, | ||
8 | CustomPagesCommand, | ||
9 | killallServers, | ||
10 | PeerTubeServer, | ||
11 | setAccessTokensToServers, | ||
12 | setDefaultAccountAvatar, | ||
13 | setDefaultChannelAvatar | ||
14 | } from '@peertube/peertube-server-commands' | ||
15 | |||
16 | async function getHomepageState (server: PeerTubeServer) { | ||
17 | const config = await server.config.getConfig() | ||
18 | |||
19 | return config.homepage.enabled | ||
20 | } | ||
21 | |||
22 | describe('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 | }) | ||