diff options
Diffstat (limited to 'server/tests/api/check-params/redundancy.ts')
-rw-r--r-- | server/tests/api/check-params/redundancy.ts | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/server/tests/api/check-params/redundancy.ts b/server/tests/api/check-params/redundancy.ts new file mode 100644 index 000000000..aa588e3dd --- /dev/null +++ b/server/tests/api/check-params/redundancy.ts | |||
@@ -0,0 +1,103 @@ | |||
1 | /* tslint:disable:no-unused-expression */ | ||
2 | |||
3 | import 'mocha' | ||
4 | |||
5 | import { | ||
6 | createUser, | ||
7 | doubleFollow, | ||
8 | flushAndRunMultipleServers, | ||
9 | flushTests, | ||
10 | killallServers, | ||
11 | makePutBodyRequest, | ||
12 | ServerInfo, | ||
13 | setAccessTokensToServers, | ||
14 | userLogin | ||
15 | } from '../../utils' | ||
16 | |||
17 | describe('Test server redundancy API validators', function () { | ||
18 | let servers: ServerInfo[] | ||
19 | let userAccessToken = null | ||
20 | |||
21 | // --------------------------------------------------------------- | ||
22 | |||
23 | before(async function () { | ||
24 | this.timeout(30000) | ||
25 | |||
26 | await flushTests() | ||
27 | servers = await flushAndRunMultipleServers(2) | ||
28 | |||
29 | await setAccessTokensToServers(servers) | ||
30 | await doubleFollow(servers[0], servers[1]) | ||
31 | |||
32 | const user = { | ||
33 | username: 'user1', | ||
34 | password: 'password' | ||
35 | } | ||
36 | |||
37 | await createUser(servers[0].url, servers[0].accessToken, user.username, user.password) | ||
38 | userAccessToken = await userLogin(servers[0], user) | ||
39 | }) | ||
40 | |||
41 | describe('When updating redundancy', function () { | ||
42 | const path = '/api/v1/server/redundancy' | ||
43 | |||
44 | it('Should fail with an invalid token', async function () { | ||
45 | await makePutBodyRequest({ | ||
46 | url: servers[0].url, | ||
47 | path: path + '/localhost:9002', | ||
48 | fields: { redundancyAllowed: true }, | ||
49 | token: 'fake_token', | ||
50 | statusCodeExpected: 401 | ||
51 | }) | ||
52 | }) | ||
53 | |||
54 | it('Should fail if the user is not an administrator', async function () { | ||
55 | await makePutBodyRequest({ | ||
56 | url: servers[0].url, | ||
57 | path: path + '/localhost:9002', | ||
58 | fields: { redundancyAllowed: true }, | ||
59 | token: userAccessToken, | ||
60 | statusCodeExpected: 403 | ||
61 | }) | ||
62 | }) | ||
63 | |||
64 | it('Should fail if we do not follow this server', async function () { | ||
65 | await makePutBodyRequest({ | ||
66 | url: servers[0].url, | ||
67 | path: path + '/example.com', | ||
68 | fields: { redundancyAllowed: true }, | ||
69 | token: servers[0].accessToken, | ||
70 | statusCodeExpected: 404 | ||
71 | }) | ||
72 | }) | ||
73 | |||
74 | it('Should fail without de redundancyAllowed param', async function () { | ||
75 | await makePutBodyRequest({ | ||
76 | url: servers[0].url, | ||
77 | path: path + '/localhost:9002', | ||
78 | fields: { blabla: true }, | ||
79 | token: servers[0].accessToken, | ||
80 | statusCodeExpected: 400 | ||
81 | }) | ||
82 | }) | ||
83 | |||
84 | it('Should succeed with the correct parameters', async function () { | ||
85 | await makePutBodyRequest({ | ||
86 | url: servers[0].url, | ||
87 | path: path + '/localhost:9002', | ||
88 | fields: { redundancyAllowed: true }, | ||
89 | token: servers[0].accessToken, | ||
90 | statusCodeExpected: 204 | ||
91 | }) | ||
92 | }) | ||
93 | }) | ||
94 | |||
95 | after(async function () { | ||
96 | killallServers(servers) | ||
97 | |||
98 | // Keep the logs if the test failed | ||
99 | if (this['ok']) { | ||
100 | await flushTests() | ||
101 | } | ||
102 | }) | ||
103 | }) | ||