diff options
Diffstat (limited to 'server/tests/api')
30 files changed, 281 insertions, 305 deletions
diff --git a/server/tests/api/activitypub/helpers.ts b/server/tests/api/activitypub/helpers.ts index 66d7631b7..57b1cab23 100644 --- a/server/tests/api/activitypub/helpers.ts +++ b/server/tests/api/activitypub/helpers.ts | |||
@@ -2,11 +2,10 @@ | |||
2 | 2 | ||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import { expect } from 'chai' | 4 | import { expect } from 'chai' |
5 | import { buildRequestStub } from '../../../../shared/extra-utils/miscs/stubs' | ||
6 | import { isHTTPSignatureVerified, isJsonLDSignatureVerified, parseHTTPSignature } from '../../../helpers/peertube-crypto' | ||
7 | import { cloneDeep } from 'lodash' | 5 | import { cloneDeep } from 'lodash' |
6 | import { buildAbsoluteFixturePath, buildRequestStub } from '@shared/extra-utils' | ||
8 | import { buildSignedActivity } from '../../../helpers/activitypub' | 7 | import { buildSignedActivity } from '../../../helpers/activitypub' |
9 | import { buildAbsoluteFixturePath } from '@shared/extra-utils' | 8 | import { isHTTPSignatureVerified, isJsonLDSignatureVerified, parseHTTPSignature } from '../../../helpers/peertube-crypto' |
10 | 9 | ||
11 | describe('Test activity pub helpers', function () { | 10 | describe('Test activity pub helpers', function () { |
12 | describe('When checking the Linked Signature', function () { | 11 | describe('When checking the Linked Signature', function () { |
diff --git a/server/tests/api/check-params/config.ts b/server/tests/api/check-params/config.ts index 9549070ef..291de93ea 100644 --- a/server/tests/api/check-params/config.ts +++ b/server/tests/api/check-params/config.ts | |||
@@ -1,22 +1,20 @@ | |||
1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ | 1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ |
2 | 2 | ||
3 | import { omit } from 'lodash' | ||
4 | import 'mocha' | 3 | import 'mocha' |
5 | import { CustomConfig } from '../../../../shared/models/server/custom-config.model' | 4 | import { omit } from 'lodash' |
6 | 5 | import { HttpStatusCode } from '@shared/core-utils' | |
7 | import { | 6 | import { |
8 | cleanupTests, | 7 | cleanupTests, |
9 | createUser, | 8 | createUser, |
10 | flushAndRunServer, | 9 | flushAndRunServer, |
11 | immutableAssign, | ||
12 | makeDeleteRequest, | 10 | makeDeleteRequest, |
13 | makeGetRequest, | 11 | makeGetRequest, |
14 | makePutBodyRequest, | 12 | makePutBodyRequest, |
15 | ServerInfo, | 13 | ServerInfo, |
16 | setAccessTokensToServers, | 14 | setAccessTokensToServers, |
17 | userLogin | 15 | userLogin |
18 | } from '../../../../shared/extra-utils' | 16 | } from '@shared/extra-utils' |
19 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' | 17 | import { CustomConfig } from '@shared/models' |
20 | 18 | ||
21 | describe('Test config API validators', function () { | 19 | describe('Test config API validators', function () { |
22 | const path = '/api/v1/config/custom' | 20 | const path = '/api/v1/config/custom' |
@@ -265,11 +263,13 @@ describe('Test config API validators', function () { | |||
265 | }) | 263 | }) |
266 | 264 | ||
267 | it('Should fail with a bad default NSFW policy', async function () { | 265 | it('Should fail with a bad default NSFW policy', async function () { |
268 | const newUpdateParams = immutableAssign(updateParams, { | 266 | const newUpdateParams = { |
267 | ...updateParams, | ||
268 | |||
269 | instance: { | 269 | instance: { |
270 | defaultNSFWPolicy: 'hello' | 270 | defaultNSFWPolicy: 'hello' |
271 | } | 271 | } |
272 | }) | 272 | } |
273 | 273 | ||
274 | await makePutBodyRequest({ | 274 | await makePutBodyRequest({ |
275 | url: server.url, | 275 | url: server.url, |
@@ -282,13 +282,15 @@ describe('Test config API validators', function () { | |||
282 | 282 | ||
283 | it('Should fail if email disabled and signup requires email verification', async function () { | 283 | it('Should fail if email disabled and signup requires email verification', async function () { |
284 | // opposite scenario - success when enable enabled - covered via tests/api/users/user-verification.ts | 284 | // opposite scenario - success when enable enabled - covered via tests/api/users/user-verification.ts |
285 | const newUpdateParams = immutableAssign(updateParams, { | 285 | const newUpdateParams = { |
286 | ...updateParams, | ||
287 | |||
286 | signup: { | 288 | signup: { |
287 | enabled: true, | 289 | enabled: true, |
288 | limit: 5, | 290 | limit: 5, |
289 | requiresEmailVerification: true | 291 | requiresEmailVerification: true |
290 | } | 292 | } |
291 | }) | 293 | } |
292 | 294 | ||
293 | await makePutBodyRequest({ | 295 | await makePutBodyRequest({ |
294 | url: server.url, | 296 | url: server.url, |
@@ -300,7 +302,9 @@ describe('Test config API validators', function () { | |||
300 | }) | 302 | }) |
301 | 303 | ||
302 | it('Should fail with a disabled webtorrent & hls transcoding', async function () { | 304 | it('Should fail with a disabled webtorrent & hls transcoding', async function () { |
303 | const newUpdateParams = immutableAssign(updateParams, { | 305 | const newUpdateParams = { |
306 | ...updateParams, | ||
307 | |||
304 | transcoding: { | 308 | transcoding: { |
305 | hls: { | 309 | hls: { |
306 | enabled: false | 310 | enabled: false |
@@ -309,7 +313,7 @@ describe('Test config API validators', function () { | |||
309 | enabled: false | 313 | enabled: false |
310 | } | 314 | } |
311 | } | 315 | } |
312 | }) | 316 | } |
313 | 317 | ||
314 | await makePutBodyRequest({ | 318 | await makePutBodyRequest({ |
315 | url: server.url, | 319 | url: server.url, |
diff --git a/server/tests/api/check-params/live.ts b/server/tests/api/check-params/live.ts index d851d258d..394967285 100644 --- a/server/tests/api/check-params/live.ts +++ b/server/tests/api/check-params/live.ts | |||
@@ -10,7 +10,6 @@ import { | |||
10 | createUser, | 10 | createUser, |
11 | flushAndRunServer, | 11 | flushAndRunServer, |
12 | getMyUserInformation, | 12 | getMyUserInformation, |
13 | immutableAssign, | ||
14 | LiveCommand, | 13 | LiveCommand, |
15 | makePostBodyRequest, | 14 | makePostBodyRequest, |
16 | makeUploadRequest, | 15 | makeUploadRequest, |
@@ -97,37 +96,37 @@ describe('Test video lives API validator', function () { | |||
97 | }) | 96 | }) |
98 | 97 | ||
99 | it('Should fail with a long name', async function () { | 98 | it('Should fail with a long name', async function () { |
100 | const fields = immutableAssign(baseCorrectParams, { name: 'super'.repeat(65) }) | 99 | const fields = { ...baseCorrectParams, name: 'super'.repeat(65) } |
101 | 100 | ||
102 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 101 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
103 | }) | 102 | }) |
104 | 103 | ||
105 | it('Should fail with a bad category', async function () { | 104 | it('Should fail with a bad category', async function () { |
106 | const fields = immutableAssign(baseCorrectParams, { category: 125 }) | 105 | const fields = { ...baseCorrectParams, category: 125 } |
107 | 106 | ||
108 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 107 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
109 | }) | 108 | }) |
110 | 109 | ||
111 | it('Should fail with a bad licence', async function () { | 110 | it('Should fail with a bad licence', async function () { |
112 | const fields = immutableAssign(baseCorrectParams, { licence: 125 }) | 111 | const fields = { ...baseCorrectParams, licence: 125 } |
113 | 112 | ||
114 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 113 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
115 | }) | 114 | }) |
116 | 115 | ||
117 | it('Should fail with a bad language', async function () { | 116 | it('Should fail with a bad language', async function () { |
118 | const fields = immutableAssign(baseCorrectParams, { language: 'a'.repeat(15) }) | 117 | const fields = { ...baseCorrectParams, language: 'a'.repeat(15) } |
119 | 118 | ||
120 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 119 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
121 | }) | 120 | }) |
122 | 121 | ||
123 | it('Should fail with a long description', async function () { | 122 | it('Should fail with a long description', async function () { |
124 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(2500) }) | 123 | const fields = { ...baseCorrectParams, description: 'super'.repeat(2500) } |
125 | 124 | ||
126 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 125 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
127 | }) | 126 | }) |
128 | 127 | ||
129 | it('Should fail with a long support text', async function () { | 128 | it('Should fail with a long support text', async function () { |
130 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) | 129 | const fields = { ...baseCorrectParams, support: 'super'.repeat(201) } |
131 | 130 | ||
132 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 131 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
133 | }) | 132 | }) |
@@ -139,7 +138,7 @@ describe('Test video lives API validator', function () { | |||
139 | }) | 138 | }) |
140 | 139 | ||
141 | it('Should fail with a bad channel', async function () { | 140 | it('Should fail with a bad channel', async function () { |
142 | const fields = immutableAssign(baseCorrectParams, { channelId: 545454 }) | 141 | const fields = { ...baseCorrectParams, channelId: 545454 } |
143 | 142 | ||
144 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 143 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
145 | }) | 144 | }) |
@@ -155,25 +154,25 @@ describe('Test video lives API validator', function () { | |||
155 | const res = await getMyUserInformation(server.url, accessTokenUser) | 154 | const res = await getMyUserInformation(server.url, accessTokenUser) |
156 | const customChannelId = res.body.videoChannels[0].id | 155 | const customChannelId = res.body.videoChannels[0].id |
157 | 156 | ||
158 | const fields = immutableAssign(baseCorrectParams, { channelId: customChannelId }) | 157 | const fields = { ...baseCorrectParams, channelId: customChannelId } |
159 | 158 | ||
160 | await makePostBodyRequest({ url: server.url, path, token: userAccessToken, fields }) | 159 | await makePostBodyRequest({ url: server.url, path, token: userAccessToken, fields }) |
161 | }) | 160 | }) |
162 | 161 | ||
163 | it('Should fail with too many tags', async function () { | 162 | it('Should fail with too many tags', async function () { |
164 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] }) | 163 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] } |
165 | 164 | ||
166 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 165 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
167 | }) | 166 | }) |
168 | 167 | ||
169 | it('Should fail with a tag length too low', async function () { | 168 | it('Should fail with a tag length too low', async function () { |
170 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 't' ] }) | 169 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 't' ] } |
171 | 170 | ||
172 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 171 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
173 | }) | 172 | }) |
174 | 173 | ||
175 | it('Should fail with a tag length too big', async function () { | 174 | it('Should fail with a tag length too big', async function () { |
176 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] }) | 175 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] } |
177 | 176 | ||
178 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 177 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
179 | }) | 178 | }) |
@@ -215,7 +214,7 @@ describe('Test video lives API validator', function () { | |||
215 | }) | 214 | }) |
216 | 215 | ||
217 | it('Should fail with save replay and permanent live set to true', async function () { | 216 | it('Should fail with save replay and permanent live set to true', async function () { |
218 | const fields = immutableAssign(baseCorrectParams, { saveReplay: true, permanentLive: true }) | 217 | const fields = { ...baseCorrectParams, saveReplay: true, permanentLive: true } |
219 | 218 | ||
220 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 219 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
221 | }) | 220 | }) |
@@ -253,7 +252,7 @@ describe('Test video lives API validator', function () { | |||
253 | }) | 252 | }) |
254 | 253 | ||
255 | it('Should forbid to save replay if not enabled by the admin', async function () { | 254 | it('Should forbid to save replay if not enabled by the admin', async function () { |
256 | const fields = immutableAssign(baseCorrectParams, { saveReplay: true }) | 255 | const fields = { ...baseCorrectParams, saveReplay: true } |
257 | 256 | ||
258 | await server.configCommand.updateCustomSubConfig({ | 257 | await server.configCommand.updateCustomSubConfig({ |
259 | newConfig: { | 258 | newConfig: { |
@@ -274,7 +273,7 @@ describe('Test video lives API validator', function () { | |||
274 | }) | 273 | }) |
275 | 274 | ||
276 | it('Should allow to save replay if enabled by the admin', async function () { | 275 | it('Should allow to save replay if enabled by the admin', async function () { |
277 | const fields = immutableAssign(baseCorrectParams, { saveReplay: true }) | 276 | const fields = { ...baseCorrectParams, saveReplay: true } |
278 | 277 | ||
279 | await server.configCommand.updateCustomSubConfig({ | 278 | await server.configCommand.updateCustomSubConfig({ |
280 | newConfig: { | 279 | newConfig: { |
diff --git a/server/tests/api/check-params/plugins.ts b/server/tests/api/check-params/plugins.ts index d372221d0..8509b8ac5 100644 --- a/server/tests/api/check-params/plugins.ts +++ b/server/tests/api/check-params/plugins.ts | |||
@@ -9,7 +9,6 @@ import { | |||
9 | cleanupTests, | 9 | cleanupTests, |
10 | createUser, | 10 | createUser, |
11 | flushAndRunServer, | 11 | flushAndRunServer, |
12 | immutableAssign, | ||
13 | makeGetRequest, | 12 | makeGetRequest, |
14 | makePostBodyRequest, | 13 | makePostBodyRequest, |
15 | makePutBodyRequest, | 14 | makePutBodyRequest, |
@@ -200,7 +199,7 @@ describe('Test server plugins API validators', function () { | |||
200 | }) | 199 | }) |
201 | 200 | ||
202 | it('Should fail with an invalid plugin type', async function () { | 201 | it('Should fail with an invalid plugin type', async function () { |
203 | const query = immutableAssign(baseQuery, { pluginType: 5 }) | 202 | const query = { ...baseQuery, pluginType: 5 } |
204 | 203 | ||
205 | await makeGetRequest({ | 204 | await makeGetRequest({ |
206 | url: server.url, | 205 | url: server.url, |
@@ -211,7 +210,7 @@ describe('Test server plugins API validators', function () { | |||
211 | }) | 210 | }) |
212 | 211 | ||
213 | it('Should fail with an invalid current peertube engine', async function () { | 212 | it('Should fail with an invalid current peertube engine', async function () { |
214 | const query = immutableAssign(baseQuery, { currentPeerTubeEngine: '1.0' }) | 213 | const query = { ...baseQuery, currentPeerTubeEngine: '1.0' } |
215 | 214 | ||
216 | await makeGetRequest({ | 215 | await makeGetRequest({ |
217 | url: server.url, | 216 | url: server.url, |
@@ -271,7 +270,7 @@ describe('Test server plugins API validators', function () { | |||
271 | }) | 270 | }) |
272 | 271 | ||
273 | it('Should fail with an invalid plugin type', async function () { | 272 | it('Should fail with an invalid plugin type', async function () { |
274 | const query = immutableAssign(baseQuery, { pluginType: 5 }) | 273 | const query = { ...baseQuery, pluginType: 5 } |
275 | 274 | ||
276 | await makeGetRequest({ | 275 | await makeGetRequest({ |
277 | url: server.url, | 276 | url: server.url, |
diff --git a/server/tests/api/check-params/search.ts b/server/tests/api/check-params/search.ts index 4a2fc1197..7973c112f 100644 --- a/server/tests/api/check-params/search.ts +++ b/server/tests/api/check-params/search.ts | |||
@@ -8,7 +8,6 @@ import { | |||
8 | checkBadStartPagination, | 8 | checkBadStartPagination, |
9 | cleanupTests, | 9 | cleanupTests, |
10 | flushAndRunServer, | 10 | flushAndRunServer, |
11 | immutableAssign, | ||
12 | makeGetRequest, | 11 | makeGetRequest, |
13 | ServerInfo, | 12 | ServerInfo, |
14 | setAccessTokensToServers | 13 | setAccessTokensToServers |
@@ -63,78 +62,78 @@ describe('Test videos API validator', function () { | |||
63 | }) | 62 | }) |
64 | 63 | ||
65 | it('Should fail with an invalid category', async function () { | 64 | it('Should fail with an invalid category', async function () { |
66 | const customQuery1 = immutableAssign(query, { categoryOneOf: [ 'aa', 'b' ] }) | 65 | const customQuery1 = { ...query, categoryOneOf: [ 'aa', 'b' ] } |
67 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 66 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
68 | 67 | ||
69 | const customQuery2 = immutableAssign(query, { categoryOneOf: 'a' }) | 68 | const customQuery2 = { ...query, categoryOneOf: 'a' } |
70 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 69 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
71 | }) | 70 | }) |
72 | 71 | ||
73 | it('Should succeed with a valid category', async function () { | 72 | it('Should succeed with a valid category', async function () { |
74 | const customQuery1 = immutableAssign(query, { categoryOneOf: [ 1, 7 ] }) | 73 | const customQuery1 = { ...query, categoryOneOf: [ 1, 7 ] } |
75 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.OK_200 }) | 74 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.OK_200 }) |
76 | 75 | ||
77 | const customQuery2 = immutableAssign(query, { categoryOneOf: 1 }) | 76 | const customQuery2 = { ...query, categoryOneOf: 1 } |
78 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.OK_200 }) | 77 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.OK_200 }) |
79 | }) | 78 | }) |
80 | 79 | ||
81 | it('Should fail with an invalid licence', async function () { | 80 | it('Should fail with an invalid licence', async function () { |
82 | const customQuery1 = immutableAssign(query, { licenceOneOf: [ 'aa', 'b' ] }) | 81 | const customQuery1 = { ...query, licenceOneOf: [ 'aa', 'b' ] } |
83 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 82 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
84 | 83 | ||
85 | const customQuery2 = immutableAssign(query, { licenceOneOf: 'a' }) | 84 | const customQuery2 = { ...query, licenceOneOf: 'a' } |
86 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 85 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
87 | }) | 86 | }) |
88 | 87 | ||
89 | it('Should succeed with a valid licence', async function () { | 88 | it('Should succeed with a valid licence', async function () { |
90 | const customQuery1 = immutableAssign(query, { licenceOneOf: [ 1, 2 ] }) | 89 | const customQuery1 = { ...query, licenceOneOf: [ 1, 2 ] } |
91 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.OK_200 }) | 90 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.OK_200 }) |
92 | 91 | ||
93 | const customQuery2 = immutableAssign(query, { licenceOneOf: 1 }) | 92 | const customQuery2 = { ...query, licenceOneOf: 1 } |
94 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.OK_200 }) | 93 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.OK_200 }) |
95 | }) | 94 | }) |
96 | 95 | ||
97 | it('Should succeed with a valid language', async function () { | 96 | it('Should succeed with a valid language', async function () { |
98 | const customQuery1 = immutableAssign(query, { languageOneOf: [ 'fr', 'en' ] }) | 97 | const customQuery1 = { ...query, languageOneOf: [ 'fr', 'en' ] } |
99 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.OK_200 }) | 98 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.OK_200 }) |
100 | 99 | ||
101 | const customQuery2 = immutableAssign(query, { languageOneOf: 'fr' }) | 100 | const customQuery2 = { ...query, languageOneOf: 'fr' } |
102 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.OK_200 }) | 101 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.OK_200 }) |
103 | }) | 102 | }) |
104 | 103 | ||
105 | it('Should succeed with valid tags', async function () { | 104 | it('Should succeed with valid tags', async function () { |
106 | const customQuery1 = immutableAssign(query, { tagsOneOf: [ 'tag1', 'tag2' ] }) | 105 | const customQuery1 = { ...query, tagsOneOf: [ 'tag1', 'tag2' ] } |
107 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.OK_200 }) | 106 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.OK_200 }) |
108 | 107 | ||
109 | const customQuery2 = immutableAssign(query, { tagsOneOf: 'tag1' }) | 108 | const customQuery2 = { ...query, tagsOneOf: 'tag1' } |
110 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.OK_200 }) | 109 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.OK_200 }) |
111 | 110 | ||
112 | const customQuery3 = immutableAssign(query, { tagsAllOf: [ 'tag1', 'tag2' ] }) | 111 | const customQuery3 = { ...query, tagsAllOf: [ 'tag1', 'tag2' ] } |
113 | await makeGetRequest({ url: server.url, path, query: customQuery3, statusCodeExpected: HttpStatusCode.OK_200 }) | 112 | await makeGetRequest({ url: server.url, path, query: customQuery3, statusCodeExpected: HttpStatusCode.OK_200 }) |
114 | 113 | ||
115 | const customQuery4 = immutableAssign(query, { tagsAllOf: 'tag1' }) | 114 | const customQuery4 = { ...query, tagsAllOf: 'tag1' } |
116 | await makeGetRequest({ url: server.url, path, query: customQuery4, statusCodeExpected: HttpStatusCode.OK_200 }) | 115 | await makeGetRequest({ url: server.url, path, query: customQuery4, statusCodeExpected: HttpStatusCode.OK_200 }) |
117 | }) | 116 | }) |
118 | 117 | ||
119 | it('Should fail with invalid durations', async function () { | 118 | it('Should fail with invalid durations', async function () { |
120 | const customQuery1 = immutableAssign(query, { durationMin: 'hello' }) | 119 | const customQuery1 = { ...query, durationMin: 'hello' } |
121 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 120 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
122 | 121 | ||
123 | const customQuery2 = immutableAssign(query, { durationMax: 'hello' }) | 122 | const customQuery2 = { ...query, durationMax: 'hello' } |
124 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 123 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
125 | }) | 124 | }) |
126 | 125 | ||
127 | it('Should fail with invalid dates', async function () { | 126 | it('Should fail with invalid dates', async function () { |
128 | const customQuery1 = immutableAssign(query, { startDate: 'hello' }) | 127 | const customQuery1 = { ...query, startDate: 'hello' } |
129 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 128 | await makeGetRequest({ url: server.url, path, query: customQuery1, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
130 | 129 | ||
131 | const customQuery2 = immutableAssign(query, { endDate: 'hello' }) | 130 | const customQuery2 = { ...query, endDate: 'hello' } |
132 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 131 | await makeGetRequest({ url: server.url, path, query: customQuery2, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
133 | 132 | ||
134 | const customQuery3 = immutableAssign(query, { originallyPublishedStartDate: 'hello' }) | 133 | const customQuery3 = { ...query, originallyPublishedStartDate: 'hello' } |
135 | await makeGetRequest({ url: server.url, path, query: customQuery3, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 134 | await makeGetRequest({ url: server.url, path, query: customQuery3, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
136 | 135 | ||
137 | const customQuery4 = immutableAssign(query, { originallyPublishedEndDate: 'hello' }) | 136 | const customQuery4 = { ...query, originallyPublishedEndDate: 'hello' } |
138 | await makeGetRequest({ url: server.url, path, query: customQuery4, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 137 | await makeGetRequest({ url: server.url, path, query: customQuery4, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
139 | }) | 138 | }) |
140 | }) | 139 | }) |
@@ -201,41 +200,41 @@ describe('Test videos API validator', function () { | |||
201 | 200 | ||
202 | for (const path of paths) { | 201 | for (const path of paths) { |
203 | { | 202 | { |
204 | const customQuery = immutableAssign(query, { searchTarget: 'hello' }) | 203 | const customQuery = { ...query, searchTarget: 'hello' } |
205 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 204 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
206 | } | 205 | } |
207 | 206 | ||
208 | { | 207 | { |
209 | const customQuery = immutableAssign(query, { searchTarget: undefined }) | 208 | const customQuery = { ...query, searchTarget: undefined } |
210 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.OK_200 }) | 209 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.OK_200 }) |
211 | } | 210 | } |
212 | 211 | ||
213 | { | 212 | { |
214 | const customQuery = immutableAssign(query, { searchTarget: 'local' }) | 213 | const customQuery = { ...query, searchTarget: 'local' } |
215 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.OK_200 }) | 214 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.OK_200 }) |
216 | } | 215 | } |
217 | 216 | ||
218 | { | 217 | { |
219 | const customQuery = immutableAssign(query, { searchTarget: 'search-index' }) | 218 | const customQuery = { ...query, searchTarget: 'search-index' } |
220 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 219 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
221 | } | 220 | } |
222 | 221 | ||
223 | await updateSearchIndex(server, true, true) | 222 | await updateSearchIndex(server, true, true) |
224 | 223 | ||
225 | { | 224 | { |
226 | const customQuery = immutableAssign(query, { searchTarget: 'local' }) | 225 | const customQuery = { ...query, searchTarget: 'local' } |
227 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) | 226 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 }) |
228 | } | 227 | } |
229 | 228 | ||
230 | { | 229 | { |
231 | const customQuery = immutableAssign(query, { searchTarget: 'search-index' }) | 230 | const customQuery = { ...query, searchTarget: 'search-index' } |
232 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.OK_200 }) | 231 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.OK_200 }) |
233 | } | 232 | } |
234 | 233 | ||
235 | await updateSearchIndex(server, true, false) | 234 | await updateSearchIndex(server, true, false) |
236 | 235 | ||
237 | { | 236 | { |
238 | const customQuery = immutableAssign(query, { searchTarget: 'local' }) | 237 | const customQuery = { ...query, searchTarget: 'local' } |
239 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.OK_200 }) | 238 | await makeGetRequest({ url: server.url, path, query: customQuery, statusCodeExpected: HttpStatusCode.OK_200 }) |
240 | } | 239 | } |
241 | 240 | ||
diff --git a/server/tests/api/check-params/user-notifications.ts b/server/tests/api/check-params/user-notifications.ts index 26d4423f9..913eca366 100644 --- a/server/tests/api/check-params/user-notifications.ts +++ b/server/tests/api/check-params/user-notifications.ts | |||
@@ -2,25 +2,21 @@ | |||
2 | 2 | ||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import { io } from 'socket.io-client' | 4 | import { io } from 'socket.io-client' |
5 | 5 | import { HttpStatusCode } from '@shared/core-utils' | |
6 | import { | 6 | import { |
7 | checkBadCountPagination, | ||
8 | checkBadSortPagination, | ||
9 | checkBadStartPagination, | ||
7 | cleanupTests, | 10 | cleanupTests, |
8 | flushAndRunServer, | 11 | flushAndRunServer, |
9 | immutableAssign, | ||
10 | makeGetRequest, | 12 | makeGetRequest, |
11 | makePostBodyRequest, | 13 | makePostBodyRequest, |
12 | makePutBodyRequest, | 14 | makePutBodyRequest, |
13 | ServerInfo, | 15 | ServerInfo, |
14 | setAccessTokensToServers, | 16 | setAccessTokensToServers, |
15 | wait | 17 | wait |
16 | } from '../../../../shared/extra-utils' | 18 | } from '@shared/extra-utils' |
17 | import { | 19 | import { UserNotificationSetting, UserNotificationSettingValue } from '@shared/models' |
18 | checkBadCountPagination, | ||
19 | checkBadSortPagination, | ||
20 | checkBadStartPagination | ||
21 | } from '../../../../shared/extra-utils/requests/check-api-params' | ||
22 | import { UserNotificationSetting, UserNotificationSettingValue } from '../../../../shared/models/users' | ||
23 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' | ||
24 | 20 | ||
25 | describe('Test user notifications API validators', function () { | 21 | describe('Test user notifications API validators', function () { |
26 | let server: ServerInfo | 22 | let server: ServerInfo |
@@ -193,7 +189,7 @@ describe('Test user notifications API validators', function () { | |||
193 | 189 | ||
194 | it('Should fail with incorrect field values', async function () { | 190 | it('Should fail with incorrect field values', async function () { |
195 | { | 191 | { |
196 | const fields = immutableAssign(correctFields, { newCommentOnMyVideo: 15 }) | 192 | const fields = { ...correctFields, newCommentOnMyVideo: 15 } |
197 | 193 | ||
198 | await makePutBodyRequest({ | 194 | await makePutBodyRequest({ |
199 | url: server.url, | 195 | url: server.url, |
@@ -205,7 +201,7 @@ describe('Test user notifications API validators', function () { | |||
205 | } | 201 | } |
206 | 202 | ||
207 | { | 203 | { |
208 | const fields = immutableAssign(correctFields, { newCommentOnMyVideo: 'toto' }) | 204 | const fields = { ...correctFields, newCommentOnMyVideo: 'toto' } |
209 | 205 | ||
210 | await makePutBodyRequest({ | 206 | await makePutBodyRequest({ |
211 | url: server.url, | 207 | url: server.url, |
diff --git a/server/tests/api/check-params/users.ts b/server/tests/api/check-params/users.ts index bffe29bce..fda7e9640 100644 --- a/server/tests/api/check-params/users.ts +++ b/server/tests/api/check-params/users.ts | |||
@@ -15,7 +15,6 @@ import { | |||
15 | getMyUserVideoRating, | 15 | getMyUserVideoRating, |
16 | getUserScopedTokens, | 16 | getUserScopedTokens, |
17 | getUsersList, | 17 | getUsersList, |
18 | immutableAssign, | ||
19 | killallServers, | 18 | killallServers, |
20 | makeGetRequest, | 19 | makeGetRequest, |
21 | makePostBodyRequest, | 20 | makePostBodyRequest, |
@@ -181,25 +180,25 @@ describe('Test users API validators', function () { | |||
181 | } | 180 | } |
182 | 181 | ||
183 | it('Should fail with a too small username', async function () { | 182 | it('Should fail with a too small username', async function () { |
184 | const fields = immutableAssign(baseCorrectParams, { username: '' }) | 183 | const fields = { ...baseCorrectParams, username: '' } |
185 | 184 | ||
186 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 185 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
187 | }) | 186 | }) |
188 | 187 | ||
189 | it('Should fail with a too long username', async function () { | 188 | it('Should fail with a too long username', async function () { |
190 | const fields = immutableAssign(baseCorrectParams, { username: 'super'.repeat(50) }) | 189 | const fields = { ...baseCorrectParams, username: 'super'.repeat(50) } |
191 | 190 | ||
192 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 191 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
193 | }) | 192 | }) |
194 | 193 | ||
195 | it('Should fail with a not lowercase username', async function () { | 194 | it('Should fail with a not lowercase username', async function () { |
196 | const fields = immutableAssign(baseCorrectParams, { username: 'Toto' }) | 195 | const fields = { ...baseCorrectParams, username: 'Toto' } |
197 | 196 | ||
198 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 197 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
199 | }) | 198 | }) |
200 | 199 | ||
201 | it('Should fail with an incorrect username', async function () { | 200 | it('Should fail with an incorrect username', async function () { |
202 | const fields = immutableAssign(baseCorrectParams, { username: 'my username' }) | 201 | const fields = { ...baseCorrectParams, username: 'my username' } |
203 | 202 | ||
204 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 203 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
205 | }) | 204 | }) |
@@ -211,25 +210,25 @@ describe('Test users API validators', function () { | |||
211 | }) | 210 | }) |
212 | 211 | ||
213 | it('Should fail with an invalid email', async function () { | 212 | it('Should fail with an invalid email', async function () { |
214 | const fields = immutableAssign(baseCorrectParams, { email: 'test_example.com' }) | 213 | const fields = { ...baseCorrectParams, email: 'test_example.com' } |
215 | 214 | ||
216 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 215 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
217 | }) | 216 | }) |
218 | 217 | ||
219 | it('Should fail with a too small password', async function () { | 218 | it('Should fail with a too small password', async function () { |
220 | const fields = immutableAssign(baseCorrectParams, { password: 'bla' }) | 219 | const fields = { ...baseCorrectParams, password: 'bla' } |
221 | 220 | ||
222 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 221 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
223 | }) | 222 | }) |
224 | 223 | ||
225 | it('Should fail with a too long password', async function () { | 224 | it('Should fail with a too long password', async function () { |
226 | const fields = immutableAssign(baseCorrectParams, { password: 'super'.repeat(61) }) | 225 | const fields = { ...baseCorrectParams, password: 'super'.repeat(61) } |
227 | 226 | ||
228 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 227 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
229 | }) | 228 | }) |
230 | 229 | ||
231 | it('Should fail with empty password and no smtp configured', async function () { | 230 | it('Should fail with empty password and no smtp configured', async function () { |
232 | const fields = immutableAssign(baseCorrectParams, { password: '' }) | 231 | const fields = { ...baseCorrectParams, password: '' } |
233 | 232 | ||
234 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 233 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
235 | }) | 234 | }) |
@@ -239,19 +238,23 @@ describe('Test users API validators', function () { | |||
239 | 238 | ||
240 | await killallServers([ server ]) | 239 | await killallServers([ server ]) |
241 | 240 | ||
242 | const config = immutableAssign(overrideConfig, { | 241 | const config = { |
242 | ...overrideConfig, | ||
243 | |||
243 | smtp: { | 244 | smtp: { |
244 | hostname: 'localhost', | 245 | hostname: 'localhost', |
245 | port: emailPort | 246 | port: emailPort |
246 | } | 247 | } |
247 | }) | 248 | } |
248 | await reRunServer(server, config) | 249 | await reRunServer(server, config) |
249 | 250 | ||
250 | const fields = immutableAssign(baseCorrectParams, { | 251 | const fields = { |
252 | ...baseCorrectParams, | ||
253 | |||
251 | password: '', | 254 | password: '', |
252 | username: 'create_password', | 255 | username: 'create_password', |
253 | email: 'create_password@example.com' | 256 | email: 'create_password@example.com' |
254 | }) | 257 | } |
255 | 258 | ||
256 | await makePostBodyRequest({ | 259 | await makePostBodyRequest({ |
257 | url: server.url, | 260 | url: server.url, |
@@ -263,7 +266,7 @@ describe('Test users API validators', function () { | |||
263 | }) | 266 | }) |
264 | 267 | ||
265 | it('Should fail with invalid admin flags', async function () { | 268 | it('Should fail with invalid admin flags', async function () { |
266 | const fields = immutableAssign(baseCorrectParams, { adminFlags: 'toto' }) | 269 | const fields = { ...baseCorrectParams, adminFlags: 'toto' } |
267 | 270 | ||
268 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 271 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
269 | }) | 272 | }) |
@@ -279,7 +282,7 @@ describe('Test users API validators', function () { | |||
279 | }) | 282 | }) |
280 | 283 | ||
281 | it('Should fail if we add a user with the same username', async function () { | 284 | it('Should fail if we add a user with the same username', async function () { |
282 | const fields = immutableAssign(baseCorrectParams, { username: 'user1' }) | 285 | const fields = { ...baseCorrectParams, username: 'user1' } |
283 | 286 | ||
284 | await makePostBodyRequest({ | 287 | await makePostBodyRequest({ |
285 | url: server.url, | 288 | url: server.url, |
@@ -291,7 +294,7 @@ describe('Test users API validators', function () { | |||
291 | }) | 294 | }) |
292 | 295 | ||
293 | it('Should fail if we add a user with the same email', async function () { | 296 | it('Should fail if we add a user with the same email', async function () { |
294 | const fields = immutableAssign(baseCorrectParams, { email: 'user1@example.com' }) | 297 | const fields = { ...baseCorrectParams, email: 'user1@example.com' } |
295 | 298 | ||
296 | await makePostBodyRequest({ | 299 | await makePostBodyRequest({ |
297 | url: server.url, | 300 | url: server.url, |
@@ -315,13 +318,13 @@ describe('Test users API validators', function () { | |||
315 | }) | 318 | }) |
316 | 319 | ||
317 | it('Should fail with an invalid videoQuota', async function () { | 320 | it('Should fail with an invalid videoQuota', async function () { |
318 | const fields = immutableAssign(baseCorrectParams, { videoQuota: -5 }) | 321 | const fields = { ...baseCorrectParams, videoQuota: -5 } |
319 | 322 | ||
320 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 323 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
321 | }) | 324 | }) |
322 | 325 | ||
323 | it('Should fail with an invalid videoQuotaDaily', async function () { | 326 | it('Should fail with an invalid videoQuotaDaily', async function () { |
324 | const fields = immutableAssign(baseCorrectParams, { videoQuotaDaily: -7 }) | 327 | const fields = { ...baseCorrectParams, videoQuotaDaily: -7 } |
325 | 328 | ||
326 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 329 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
327 | }) | 330 | }) |
@@ -333,13 +336,13 @@ describe('Test users API validators', function () { | |||
333 | }) | 336 | }) |
334 | 337 | ||
335 | it('Should fail with an invalid user role', async function () { | 338 | it('Should fail with an invalid user role', async function () { |
336 | const fields = immutableAssign(baseCorrectParams, { role: 88989 }) | 339 | const fields = { ...baseCorrectParams, role: 88989 } |
337 | 340 | ||
338 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 341 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
339 | }) | 342 | }) |
340 | 343 | ||
341 | it('Should fail with a "peertube" username', async function () { | 344 | it('Should fail with a "peertube" username', async function () { |
342 | const fields = immutableAssign(baseCorrectParams, { username: 'peertube' }) | 345 | const fields = { ...baseCorrectParams, username: 'peertube' } |
343 | 346 | ||
344 | await makePostBodyRequest({ | 347 | await makePostBodyRequest({ |
345 | url: server.url, | 348 | url: server.url, |
@@ -352,7 +355,7 @@ describe('Test users API validators', function () { | |||
352 | 355 | ||
353 | it('Should fail to create a moderator or an admin with a moderator', async function () { | 356 | it('Should fail to create a moderator or an admin with a moderator', async function () { |
354 | for (const role of [ UserRole.MODERATOR, UserRole.ADMINISTRATOR ]) { | 357 | for (const role of [ UserRole.MODERATOR, UserRole.ADMINISTRATOR ]) { |
355 | const fields = immutableAssign(baseCorrectParams, { role }) | 358 | const fields = { ...baseCorrectParams, role } |
356 | 359 | ||
357 | await makePostBodyRequest({ | 360 | await makePostBodyRequest({ |
358 | url: server.url, | 361 | url: server.url, |
@@ -365,7 +368,7 @@ describe('Test users API validators', function () { | |||
365 | }) | 368 | }) |
366 | 369 | ||
367 | it('Should succeed to create a user with a moderator', async function () { | 370 | it('Should succeed to create a user with a moderator', async function () { |
368 | const fields = immutableAssign(baseCorrectParams, { username: 'a4656', email: 'a4656@example.com', role: UserRole.USER }) | 371 | const fields = { ...baseCorrectParams, username: 'a4656', email: 'a4656@example.com', role: UserRole.USER } |
369 | 372 | ||
370 | await makePostBodyRequest({ | 373 | await makePostBodyRequest({ |
371 | url: server.url, | 374 | url: server.url, |
@@ -937,19 +940,19 @@ describe('Test users API validators', function () { | |||
937 | } | 940 | } |
938 | 941 | ||
939 | it('Should fail with a too small username', async function () { | 942 | it('Should fail with a too small username', async function () { |
940 | const fields = immutableAssign(baseCorrectParams, { username: '' }) | 943 | const fields = { ...baseCorrectParams, username: '' } |
941 | 944 | ||
942 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 945 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
943 | }) | 946 | }) |
944 | 947 | ||
945 | it('Should fail with a too long username', async function () { | 948 | it('Should fail with a too long username', async function () { |
946 | const fields = immutableAssign(baseCorrectParams, { username: 'super'.repeat(50) }) | 949 | const fields = { ...baseCorrectParams, username: 'super'.repeat(50) } |
947 | 950 | ||
948 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 951 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
949 | }) | 952 | }) |
950 | 953 | ||
951 | it('Should fail with an incorrect username', async function () { | 954 | it('Should fail with an incorrect username', async function () { |
952 | const fields = immutableAssign(baseCorrectParams, { username: 'my username' }) | 955 | const fields = { ...baseCorrectParams, username: 'my username' } |
953 | 956 | ||
954 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 957 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
955 | }) | 958 | }) |
@@ -961,25 +964,25 @@ describe('Test users API validators', function () { | |||
961 | }) | 964 | }) |
962 | 965 | ||
963 | it('Should fail with an invalid email', async function () { | 966 | it('Should fail with an invalid email', async function () { |
964 | const fields = immutableAssign(baseCorrectParams, { email: 'test_example.com' }) | 967 | const fields = { ...baseCorrectParams, email: 'test_example.com' } |
965 | 968 | ||
966 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 969 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
967 | }) | 970 | }) |
968 | 971 | ||
969 | it('Should fail with a too small password', async function () { | 972 | it('Should fail with a too small password', async function () { |
970 | const fields = immutableAssign(baseCorrectParams, { password: 'bla' }) | 973 | const fields = { ...baseCorrectParams, password: 'bla' } |
971 | 974 | ||
972 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 975 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
973 | }) | 976 | }) |
974 | 977 | ||
975 | it('Should fail with a too long password', async function () { | 978 | it('Should fail with a too long password', async function () { |
976 | const fields = immutableAssign(baseCorrectParams, { password: 'super'.repeat(61) }) | 979 | const fields = { ...baseCorrectParams, password: 'super'.repeat(61) } |
977 | 980 | ||
978 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 981 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
979 | }) | 982 | }) |
980 | 983 | ||
981 | it('Should fail if we register a user with the same username', async function () { | 984 | it('Should fail if we register a user with the same username', async function () { |
982 | const fields = immutableAssign(baseCorrectParams, { username: 'root' }) | 985 | const fields = { ...baseCorrectParams, username: 'root' } |
983 | 986 | ||
984 | await makePostBodyRequest({ | 987 | await makePostBodyRequest({ |
985 | url: server.url, | 988 | url: server.url, |
@@ -991,7 +994,7 @@ describe('Test users API validators', function () { | |||
991 | }) | 994 | }) |
992 | 995 | ||
993 | it('Should fail with a "peertube" username', async function () { | 996 | it('Should fail with a "peertube" username', async function () { |
994 | const fields = immutableAssign(baseCorrectParams, { username: 'peertube' }) | 997 | const fields = { ...baseCorrectParams, username: 'peertube' } |
995 | 998 | ||
996 | await makePostBodyRequest({ | 999 | await makePostBodyRequest({ |
997 | url: server.url, | 1000 | url: server.url, |
@@ -1003,7 +1006,7 @@ describe('Test users API validators', function () { | |||
1003 | }) | 1006 | }) |
1004 | 1007 | ||
1005 | it('Should fail if we register a user with the same email', async function () { | 1008 | it('Should fail if we register a user with the same email', async function () { |
1006 | const fields = immutableAssign(baseCorrectParams, { email: 'admin' + server.internalServerNumber + '@example.com' }) | 1009 | const fields = { ...baseCorrectParams, email: 'admin' + server.internalServerNumber + '@example.com' } |
1007 | 1010 | ||
1008 | await makePostBodyRequest({ | 1011 | await makePostBodyRequest({ |
1009 | url: server.url, | 1012 | url: server.url, |
@@ -1015,26 +1018,26 @@ describe('Test users API validators', function () { | |||
1015 | }) | 1018 | }) |
1016 | 1019 | ||
1017 | it('Should fail with a bad display name', async function () { | 1020 | it('Should fail with a bad display name', async function () { |
1018 | const fields = immutableAssign(baseCorrectParams, { displayName: 'a'.repeat(150) }) | 1021 | const fields = { ...baseCorrectParams, displayName: 'a'.repeat(150) } |
1019 | 1022 | ||
1020 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 1023 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
1021 | }) | 1024 | }) |
1022 | 1025 | ||
1023 | it('Should fail with a bad channel name', async function () { | 1026 | it('Should fail with a bad channel name', async function () { |
1024 | const fields = immutableAssign(baseCorrectParams, { channel: { name: '[]azf', displayName: 'toto' } }) | 1027 | const fields = { ...baseCorrectParams, channel: { name: '[]azf', displayName: 'toto' } } |
1025 | 1028 | ||
1026 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 1029 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
1027 | }) | 1030 | }) |
1028 | 1031 | ||
1029 | it('Should fail with a bad channel display name', async function () { | 1032 | it('Should fail with a bad channel display name', async function () { |
1030 | const fields = immutableAssign(baseCorrectParams, { channel: { name: 'toto', displayName: '' } }) | 1033 | const fields = { ...baseCorrectParams, channel: { name: 'toto', displayName: '' } } |
1031 | 1034 | ||
1032 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 1035 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
1033 | }) | 1036 | }) |
1034 | 1037 | ||
1035 | it('Should fail with a channel name that is the same as username', async function () { | 1038 | it('Should fail with a channel name that is the same as username', async function () { |
1036 | const source = { username: 'super_user', channel: { name: 'super_user', displayName: 'display name' } } | 1039 | const source = { username: 'super_user', channel: { name: 'super_user', displayName: 'display name' } } |
1037 | const fields = immutableAssign(baseCorrectParams, source) | 1040 | const fields = { ...baseCorrectParams, ...source } |
1038 | 1041 | ||
1039 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) | 1042 | await makePostBodyRequest({ url: server.url, path: registrationPath, token: server.accessToken, fields }) |
1040 | }) | 1043 | }) |
@@ -1043,7 +1046,7 @@ describe('Test users API validators', function () { | |||
1043 | const attributes = { name: 'existing_channel', displayName: 'hello', description: 'super description' } | 1046 | const attributes = { name: 'existing_channel', displayName: 'hello', description: 'super description' } |
1044 | await server.channelsCommand.create({ attributes }) | 1047 | await server.channelsCommand.create({ attributes }) |
1045 | 1048 | ||
1046 | const fields = immutableAssign(baseCorrectParams, { channel: { name: 'existing_channel', displayName: 'toto' } }) | 1049 | const fields = { ...baseCorrectParams, channel: { name: 'existing_channel', displayName: 'toto' } } |
1047 | 1050 | ||
1048 | await makePostBodyRequest({ | 1051 | await makePostBodyRequest({ |
1049 | url: server.url, | 1052 | url: server.url, |
@@ -1055,7 +1058,7 @@ describe('Test users API validators', function () { | |||
1055 | }) | 1058 | }) |
1056 | 1059 | ||
1057 | it('Should succeed with the correct params', async function () { | 1060 | it('Should succeed with the correct params', async function () { |
1058 | const fields = immutableAssign(baseCorrectParams, { channel: { name: 'super_channel', displayName: 'toto' } }) | 1061 | const fields = { ...baseCorrectParams, channel: { name: 'super_channel', displayName: 'toto' } } |
1059 | 1062 | ||
1060 | await makePostBodyRequest({ | 1063 | await makePostBodyRequest({ |
1061 | url: server.url, | 1064 | url: server.url, |
diff --git a/server/tests/api/check-params/video-channels.ts b/server/tests/api/check-params/video-channels.ts index d29346dc3..3b72d3796 100644 --- a/server/tests/api/check-params/video-channels.ts +++ b/server/tests/api/check-params/video-channels.ts | |||
@@ -3,14 +3,16 @@ | |||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { omit } from 'lodash' | 5 | import { omit } from 'lodash' |
6 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' | 6 | import { HttpStatusCode } from '@shared/core-utils' |
7 | import { | 7 | import { |
8 | buildAbsoluteFixturePath, | 8 | buildAbsoluteFixturePath, |
9 | ChannelsCommand, | 9 | ChannelsCommand, |
10 | checkBadCountPagination, | ||
11 | checkBadSortPagination, | ||
12 | checkBadStartPagination, | ||
10 | cleanupTests, | 13 | cleanupTests, |
11 | createUser, | 14 | createUser, |
12 | flushAndRunServer, | 15 | flushAndRunServer, |
13 | immutableAssign, | ||
14 | makeGetRequest, | 16 | makeGetRequest, |
15 | makePostBodyRequest, | 17 | makePostBodyRequest, |
16 | makePutBodyRequest, | 18 | makePutBodyRequest, |
@@ -18,13 +20,8 @@ import { | |||
18 | ServerInfo, | 20 | ServerInfo, |
19 | setAccessTokensToServers, | 21 | setAccessTokensToServers, |
20 | userLogin | 22 | userLogin |
21 | } from '../../../../shared/extra-utils' | 23 | } from '@shared/extra-utils' |
22 | import { | 24 | import { VideoChannelUpdate } from '@shared/models' |
23 | checkBadCountPagination, | ||
24 | checkBadSortPagination, | ||
25 | checkBadStartPagination | ||
26 | } from '../../../../shared/extra-utils/requests/check-api-params' | ||
27 | import { VideoChannelUpdate } from '../../../../shared/models/videos' | ||
28 | 25 | ||
29 | const expect = chai.expect | 26 | const expect = chai.expect |
30 | 27 | ||
@@ -127,7 +124,7 @@ describe('Test video channels API validator', function () { | |||
127 | }) | 124 | }) |
128 | 125 | ||
129 | it('Should fail with a bad name', async function () { | 126 | it('Should fail with a bad name', async function () { |
130 | const fields = immutableAssign(baseCorrectParams, { name: 'super name' }) | 127 | const fields = { ...baseCorrectParams, name: 'super name' } |
131 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) | 128 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) |
132 | }) | 129 | }) |
133 | 130 | ||
@@ -137,17 +134,17 @@ describe('Test video channels API validator', function () { | |||
137 | }) | 134 | }) |
138 | 135 | ||
139 | it('Should fail with a long name', async function () { | 136 | it('Should fail with a long name', async function () { |
140 | const fields = immutableAssign(baseCorrectParams, { displayName: 'super'.repeat(25) }) | 137 | const fields = { ...baseCorrectParams, displayName: 'super'.repeat(25) } |
141 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) | 138 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) |
142 | }) | 139 | }) |
143 | 140 | ||
144 | it('Should fail with a long description', async function () { | 141 | it('Should fail with a long description', async function () { |
145 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(201) }) | 142 | const fields = { ...baseCorrectParams, description: 'super'.repeat(201) } |
146 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) | 143 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) |
147 | }) | 144 | }) |
148 | 145 | ||
149 | it('Should fail with a long support text', async function () { | 146 | it('Should fail with a long support text', async function () { |
150 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) | 147 | const fields = { ...baseCorrectParams, support: 'super'.repeat(201) } |
151 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) | 148 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) |
152 | }) | 149 | }) |
153 | 150 | ||
@@ -206,22 +203,22 @@ describe('Test video channels API validator', function () { | |||
206 | }) | 203 | }) |
207 | 204 | ||
208 | it('Should fail with a long name', async function () { | 205 | it('Should fail with a long name', async function () { |
209 | const fields = immutableAssign(baseCorrectParams, { displayName: 'super'.repeat(25) }) | 206 | const fields = { ...baseCorrectParams, displayName: 'super'.repeat(25) } |
210 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 207 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
211 | }) | 208 | }) |
212 | 209 | ||
213 | it('Should fail with a long description', async function () { | 210 | it('Should fail with a long description', async function () { |
214 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(201) }) | 211 | const fields = { ...baseCorrectParams, description: 'super'.repeat(201) } |
215 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 212 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
216 | }) | 213 | }) |
217 | 214 | ||
218 | it('Should fail with a long support text', async function () { | 215 | it('Should fail with a long support text', async function () { |
219 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) | 216 | const fields = { ...baseCorrectParams, support: 'super'.repeat(201) } |
220 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 217 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
221 | }) | 218 | }) |
222 | 219 | ||
223 | it('Should fail with a bad bulkVideosSupportUpdate field', async function () { | 220 | it('Should fail with a bad bulkVideosSupportUpdate field', async function () { |
224 | const fields = immutableAssign(baseCorrectParams, { bulkVideosSupportUpdate: 'super' }) | 221 | const fields = { ...baseCorrectParams, bulkVideosSupportUpdate: 'super' } |
225 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 222 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
226 | }) | 223 | }) |
227 | 224 | ||
diff --git a/server/tests/api/check-params/video-imports.ts b/server/tests/api/check-params/video-imports.ts index ea473191e..2cc124cc1 100644 --- a/server/tests/api/check-params/video-imports.ts +++ b/server/tests/api/check-params/video-imports.ts | |||
@@ -12,7 +12,6 @@ import { | |||
12 | createUser, | 12 | createUser, |
13 | flushAndRunServer, | 13 | flushAndRunServer, |
14 | getMyUserInformation, | 14 | getMyUserInformation, |
15 | immutableAssign, | ||
16 | ImportsCommand, | 15 | ImportsCommand, |
17 | makeGetRequest, | 16 | makeGetRequest, |
18 | makePostBodyRequest, | 17 | makePostBodyRequest, |
@@ -108,43 +107,43 @@ describe('Test video imports API validator', function () { | |||
108 | }) | 107 | }) |
109 | 108 | ||
110 | it('Should fail with a bad target url', async function () { | 109 | it('Should fail with a bad target url', async function () { |
111 | const fields = immutableAssign(baseCorrectParams, { targetUrl: 'htt://hello' }) | 110 | const fields = { ...baseCorrectParams, targetUrl: 'htt://hello' } |
112 | 111 | ||
113 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 112 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
114 | }) | 113 | }) |
115 | 114 | ||
116 | it('Should fail with a long name', async function () { | 115 | it('Should fail with a long name', async function () { |
117 | const fields = immutableAssign(baseCorrectParams, { name: 'super'.repeat(65) }) | 116 | const fields = { ...baseCorrectParams, name: 'super'.repeat(65) } |
118 | 117 | ||
119 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 118 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
120 | }) | 119 | }) |
121 | 120 | ||
122 | it('Should fail with a bad category', async function () { | 121 | it('Should fail with a bad category', async function () { |
123 | const fields = immutableAssign(baseCorrectParams, { category: 125 }) | 122 | const fields = { ...baseCorrectParams, category: 125 } |
124 | 123 | ||
125 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 124 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
126 | }) | 125 | }) |
127 | 126 | ||
128 | it('Should fail with a bad licence', async function () { | 127 | it('Should fail with a bad licence', async function () { |
129 | const fields = immutableAssign(baseCorrectParams, { licence: 125 }) | 128 | const fields = { ...baseCorrectParams, licence: 125 } |
130 | 129 | ||
131 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 130 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
132 | }) | 131 | }) |
133 | 132 | ||
134 | it('Should fail with a bad language', async function () { | 133 | it('Should fail with a bad language', async function () { |
135 | const fields = immutableAssign(baseCorrectParams, { language: 'a'.repeat(15) }) | 134 | const fields = { ...baseCorrectParams, language: 'a'.repeat(15) } |
136 | 135 | ||
137 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 136 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
138 | }) | 137 | }) |
139 | 138 | ||
140 | it('Should fail with a long description', async function () { | 139 | it('Should fail with a long description', async function () { |
141 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(2500) }) | 140 | const fields = { ...baseCorrectParams, description: 'super'.repeat(2500) } |
142 | 141 | ||
143 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 142 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
144 | }) | 143 | }) |
145 | 144 | ||
146 | it('Should fail with a long support text', async function () { | 145 | it('Should fail with a long support text', async function () { |
147 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) | 146 | const fields = { ...baseCorrectParams, support: 'super'.repeat(201) } |
148 | 147 | ||
149 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 148 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
150 | }) | 149 | }) |
@@ -156,7 +155,7 @@ describe('Test video imports API validator', function () { | |||
156 | }) | 155 | }) |
157 | 156 | ||
158 | it('Should fail with a bad channel', async function () { | 157 | it('Should fail with a bad channel', async function () { |
159 | const fields = immutableAssign(baseCorrectParams, { channelId: 545454 }) | 158 | const fields = { ...baseCorrectParams, channelId: 545454 } |
160 | 159 | ||
161 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 160 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
162 | }) | 161 | }) |
@@ -172,25 +171,25 @@ describe('Test video imports API validator', function () { | |||
172 | const res = await getMyUserInformation(server.url, accessTokenUser) | 171 | const res = await getMyUserInformation(server.url, accessTokenUser) |
173 | const customChannelId = res.body.videoChannels[0].id | 172 | const customChannelId = res.body.videoChannels[0].id |
174 | 173 | ||
175 | const fields = immutableAssign(baseCorrectParams, { channelId: customChannelId }) | 174 | const fields = { ...baseCorrectParams, channelId: customChannelId } |
176 | 175 | ||
177 | await makePostBodyRequest({ url: server.url, path, token: userAccessToken, fields }) | 176 | await makePostBodyRequest({ url: server.url, path, token: userAccessToken, fields }) |
178 | }) | 177 | }) |
179 | 178 | ||
180 | it('Should fail with too many tags', async function () { | 179 | it('Should fail with too many tags', async function () { |
181 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] }) | 180 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] } |
182 | 181 | ||
183 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 182 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
184 | }) | 183 | }) |
185 | 184 | ||
186 | it('Should fail with a tag length too low', async function () { | 185 | it('Should fail with a tag length too low', async function () { |
187 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 't' ] }) | 186 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 't' ] } |
188 | 187 | ||
189 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 188 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
190 | }) | 189 | }) |
191 | 190 | ||
192 | it('Should fail with a tag length too big', async function () { | 191 | it('Should fail with a tag length too big', async function () { |
193 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] }) | 192 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] } |
194 | 193 | ||
195 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 194 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
196 | }) | 195 | }) |
@@ -242,7 +241,7 @@ describe('Test video imports API validator', function () { | |||
242 | 241 | ||
243 | it('Should fail with an invalid magnet URI', async function () { | 242 | it('Should fail with an invalid magnet URI', async function () { |
244 | let fields = omit(baseCorrectParams, 'targetUrl') | 243 | let fields = omit(baseCorrectParams, 'targetUrl') |
245 | fields = immutableAssign(fields, { magnetUri: 'blabla' }) | 244 | fields = { ...fields, magnetUri: 'blabla' } |
246 | 245 | ||
247 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 246 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
248 | }) | 247 | }) |
@@ -301,7 +300,7 @@ describe('Test video imports API validator', function () { | |||
301 | }) | 300 | }) |
302 | 301 | ||
303 | let fields = omit(baseCorrectParams, 'targetUrl') | 302 | let fields = omit(baseCorrectParams, 'targetUrl') |
304 | fields = immutableAssign(fields, { magnetUri: ImportsCommand.getMagnetURI() }) | 303 | fields = { ...fields, magnetUri: ImportsCommand.getMagnetURI() } |
305 | 304 | ||
306 | await makePostBodyRequest({ | 305 | await makePostBodyRequest({ |
307 | url: server.url, | 306 | url: server.url, |
diff --git a/server/tests/api/check-params/video-playlists.ts b/server/tests/api/check-params/video-playlists.ts index 1c507a047..3799e73b6 100644 --- a/server/tests/api/check-params/video-playlists.ts +++ b/server/tests/api/check-params/video-playlists.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ | 1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ |
2 | 2 | ||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import { HttpStatusCode } from '@shared/core-utils' | ||
4 | import { | 5 | import { |
5 | VideoPlaylistCreate, | 6 | VideoPlaylistCreate, |
6 | VideoPlaylistCreateResult, | 7 | VideoPlaylistCreateResult, |
@@ -10,7 +11,6 @@ import { | |||
10 | VideoPlaylistReorder, | 11 | VideoPlaylistReorder, |
11 | VideoPlaylistType | 12 | VideoPlaylistType |
12 | } from '@shared/models' | 13 | } from '@shared/models' |
13 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' | ||
14 | import { | 14 | import { |
15 | checkBadCountPagination, | 15 | checkBadCountPagination, |
16 | checkBadSortPagination, | 16 | checkBadSortPagination, |
@@ -18,7 +18,6 @@ import { | |||
18 | cleanupTests, | 18 | cleanupTests, |
19 | flushAndRunServer, | 19 | flushAndRunServer, |
20 | generateUserAccessToken, | 20 | generateUserAccessToken, |
21 | immutableAssign, | ||
22 | makeGetRequest, | 21 | makeGetRequest, |
23 | PlaylistsCommand, | 22 | PlaylistsCommand, |
24 | ServerInfo, | 23 | ServerInfo, |
@@ -214,7 +213,7 @@ describe('Test video playlists API validator', function () { | |||
214 | } | 213 | } |
215 | } | 214 | } |
216 | const getUpdate = (params: any, playlistId: number | string) => { | 215 | const getUpdate = (params: any, playlistId: number | string) => { |
217 | return immutableAssign(params, { playlistId: playlistId }) | 216 | return { ...params, playlistId: playlistId } |
218 | } | 217 | } |
219 | 218 | ||
220 | it('Should fail with an unauthenticated user', async function () { | 219 | it('Should fail with an unauthenticated user', async function () { |
diff --git a/server/tests/api/check-params/videos.ts b/server/tests/api/check-params/videos.ts index 4d7a9a23b..6549063b1 100644 --- a/server/tests/api/check-params/videos.ts +++ b/server/tests/api/check-params/videos.ts | |||
@@ -15,7 +15,6 @@ import { | |||
15 | getMyUserInformation, | 15 | getMyUserInformation, |
16 | getVideo, | 16 | getVideo, |
17 | getVideosList, | 17 | getVideosList, |
18 | immutableAssign, | ||
19 | makeDeleteRequest, | 18 | makeDeleteRequest, |
20 | makeGetRequest, | 19 | makeGetRequest, |
21 | makePutBodyRequest, | 20 | makePutBodyRequest, |
@@ -225,42 +224,42 @@ describe('Test videos API validator', function () { | |||
225 | }) | 224 | }) |
226 | 225 | ||
227 | it('Should fail with a long name', async function () { | 226 | it('Should fail with a long name', async function () { |
228 | const fields = immutableAssign(baseCorrectParams, { name: 'super'.repeat(65) }) | 227 | const fields = { ...baseCorrectParams, name: 'super'.repeat(65) } |
229 | const attaches = baseCorrectAttaches | 228 | const attaches = baseCorrectAttaches |
230 | 229 | ||
231 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 230 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
232 | }) | 231 | }) |
233 | 232 | ||
234 | it('Should fail with a bad category', async function () { | 233 | it('Should fail with a bad category', async function () { |
235 | const fields = immutableAssign(baseCorrectParams, { category: 125 }) | 234 | const fields = { ...baseCorrectParams, category: 125 } |
236 | const attaches = baseCorrectAttaches | 235 | const attaches = baseCorrectAttaches |
237 | 236 | ||
238 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 237 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
239 | }) | 238 | }) |
240 | 239 | ||
241 | it('Should fail with a bad licence', async function () { | 240 | it('Should fail with a bad licence', async function () { |
242 | const fields = immutableAssign(baseCorrectParams, { licence: 125 }) | 241 | const fields = { ...baseCorrectParams, licence: 125 } |
243 | const attaches = baseCorrectAttaches | 242 | const attaches = baseCorrectAttaches |
244 | 243 | ||
245 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 244 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
246 | }) | 245 | }) |
247 | 246 | ||
248 | it('Should fail with a bad language', async function () { | 247 | it('Should fail with a bad language', async function () { |
249 | const fields = immutableAssign(baseCorrectParams, { language: 'a'.repeat(15) }) | 248 | const fields = { ...baseCorrectParams, language: 'a'.repeat(15) } |
250 | const attaches = baseCorrectAttaches | 249 | const attaches = baseCorrectAttaches |
251 | 250 | ||
252 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 251 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
253 | }) | 252 | }) |
254 | 253 | ||
255 | it('Should fail with a long description', async function () { | 254 | it('Should fail with a long description', async function () { |
256 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(2500) }) | 255 | const fields = { ...baseCorrectParams, description: 'super'.repeat(2500) } |
257 | const attaches = baseCorrectAttaches | 256 | const attaches = baseCorrectAttaches |
258 | 257 | ||
259 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 258 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
260 | }) | 259 | }) |
261 | 260 | ||
262 | it('Should fail with a long support text', async function () { | 261 | it('Should fail with a long support text', async function () { |
263 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) | 262 | const fields = { ...baseCorrectParams, support: 'super'.repeat(201) } |
264 | const attaches = baseCorrectAttaches | 263 | const attaches = baseCorrectAttaches |
265 | 264 | ||
266 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 265 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
@@ -274,7 +273,7 @@ describe('Test videos API validator', function () { | |||
274 | }) | 273 | }) |
275 | 274 | ||
276 | it('Should fail with a bad channel', async function () { | 275 | it('Should fail with a bad channel', async function () { |
277 | const fields = immutableAssign(baseCorrectParams, { channelId: 545454 }) | 276 | const fields = { ...baseCorrectParams, channelId: 545454 } |
278 | const attaches = baseCorrectAttaches | 277 | const attaches = baseCorrectAttaches |
279 | 278 | ||
280 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 279 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
@@ -291,54 +290,56 @@ describe('Test videos API validator', function () { | |||
291 | const res = await getMyUserInformation(server.url, accessTokenUser) | 290 | const res = await getMyUserInformation(server.url, accessTokenUser) |
292 | const customChannelId = res.body.videoChannels[0].id | 291 | const customChannelId = res.body.videoChannels[0].id |
293 | 292 | ||
294 | const fields = immutableAssign(baseCorrectParams, { channelId: customChannelId }) | 293 | const fields = { ...baseCorrectParams, channelId: customChannelId } |
295 | const attaches = baseCorrectAttaches | 294 | const attaches = baseCorrectAttaches |
296 | 295 | ||
297 | await checkUploadVideoParam(server.url, userAccessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 296 | await checkUploadVideoParam(server.url, userAccessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
298 | }) | 297 | }) |
299 | 298 | ||
300 | it('Should fail with too many tags', async function () { | 299 | it('Should fail with too many tags', async function () { |
301 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] }) | 300 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] } |
302 | const attaches = baseCorrectAttaches | 301 | const attaches = baseCorrectAttaches |
303 | 302 | ||
304 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 303 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
305 | }) | 304 | }) |
306 | 305 | ||
307 | it('Should fail with a tag length too low', async function () { | 306 | it('Should fail with a tag length too low', async function () { |
308 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 't' ] }) | 307 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 't' ] } |
309 | const attaches = baseCorrectAttaches | 308 | const attaches = baseCorrectAttaches |
310 | 309 | ||
311 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 310 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
312 | }) | 311 | }) |
313 | 312 | ||
314 | it('Should fail with a tag length too big', async function () { | 313 | it('Should fail with a tag length too big', async function () { |
315 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] }) | 314 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] } |
316 | const attaches = baseCorrectAttaches | 315 | const attaches = baseCorrectAttaches |
317 | 316 | ||
318 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 317 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
319 | }) | 318 | }) |
320 | 319 | ||
321 | it('Should fail with a bad schedule update (miss updateAt)', async function () { | 320 | it('Should fail with a bad schedule update (miss updateAt)', async function () { |
322 | const fields = immutableAssign(baseCorrectParams, { scheduleUpdate: { privacy: VideoPrivacy.PUBLIC } }) | 321 | const fields = { ...baseCorrectParams, scheduleUpdate: { privacy: VideoPrivacy.PUBLIC } } |
323 | const attaches = baseCorrectAttaches | 322 | const attaches = baseCorrectAttaches |
324 | 323 | ||
325 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 324 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
326 | }) | 325 | }) |
327 | 326 | ||
328 | it('Should fail with a bad schedule update (wrong updateAt)', async function () { | 327 | it('Should fail with a bad schedule update (wrong updateAt)', async function () { |
329 | const fields = immutableAssign(baseCorrectParams, { | 328 | const fields = { |
329 | ...baseCorrectParams, | ||
330 | |||
330 | scheduleUpdate: { | 331 | scheduleUpdate: { |
331 | privacy: VideoPrivacy.PUBLIC, | 332 | privacy: VideoPrivacy.PUBLIC, |
332 | updateAt: 'toto' | 333 | updateAt: 'toto' |
333 | } | 334 | } |
334 | }) | 335 | } |
335 | const attaches = baseCorrectAttaches | 336 | const attaches = baseCorrectAttaches |
336 | 337 | ||
337 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 338 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
338 | }) | 339 | }) |
339 | 340 | ||
340 | it('Should fail with a bad originally published at attribute', async function () { | 341 | it('Should fail with a bad originally published at attribute', async function () { |
341 | const fields = immutableAssign(baseCorrectParams, { originallyPublishedAt: 'toto' }) | 342 | const fields = { ...baseCorrectParams, originallyPublishedAt: 'toto' } |
342 | const attaches = baseCorrectAttaches | 343 | const attaches = baseCorrectAttaches |
343 | 344 | ||
344 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) | 345 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.BAD_REQUEST_400, mode) |
@@ -413,7 +414,7 @@ describe('Test videos API validator', function () { | |||
413 | }) | 414 | }) |
414 | 415 | ||
415 | it('Should report the appropriate error', async function () { | 416 | it('Should report the appropriate error', async function () { |
416 | const fields = immutableAssign(baseCorrectParams, { language: 'a'.repeat(15) }) | 417 | const fields = { ...baseCorrectParams, language: 'a'.repeat(15) } |
417 | const attaches = baseCorrectAttaches | 418 | const attaches = baseCorrectAttaches |
418 | 419 | ||
419 | const attributes = { ...fields, ...attaches } | 420 | const attributes = { ...fields, ...attaches } |
@@ -448,17 +449,21 @@ describe('Test videos API validator', function () { | |||
448 | } | 449 | } |
449 | 450 | ||
450 | { | 451 | { |
451 | const attaches = immutableAssign(baseCorrectAttaches, { | 452 | const attaches = { |
453 | ...baseCorrectAttaches, | ||
454 | |||
452 | videofile: join(root(), 'server', 'tests', 'fixtures', 'video_short.mp4') | 455 | videofile: join(root(), 'server', 'tests', 'fixtures', 'video_short.mp4') |
453 | }) | 456 | } |
454 | 457 | ||
455 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.OK_200, mode) | 458 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.OK_200, mode) |
456 | } | 459 | } |
457 | 460 | ||
458 | { | 461 | { |
459 | const attaches = immutableAssign(baseCorrectAttaches, { | 462 | const attaches = { |
463 | ...baseCorrectAttaches, | ||
464 | |||
460 | videofile: join(root(), 'server', 'tests', 'fixtures', 'video_short.ogv') | 465 | videofile: join(root(), 'server', 'tests', 'fixtures', 'video_short.ogv') |
461 | }) | 466 | } |
462 | 467 | ||
463 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.OK_200, mode) | 468 | await checkUploadVideoParam(server.url, server.accessToken, { ...fields, ...attaches }, HttpStatusCode.OK_200, mode) |
464 | } | 469 | } |
@@ -516,79 +521,79 @@ describe('Test videos API validator', function () { | |||
516 | }) | 521 | }) |
517 | 522 | ||
518 | it('Should fail with a long name', async function () { | 523 | it('Should fail with a long name', async function () { |
519 | const fields = immutableAssign(baseCorrectParams, { name: 'super'.repeat(65) }) | 524 | const fields = { ...baseCorrectParams, name: 'super'.repeat(65) } |
520 | 525 | ||
521 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 526 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
522 | }) | 527 | }) |
523 | 528 | ||
524 | it('Should fail with a bad category', async function () { | 529 | it('Should fail with a bad category', async function () { |
525 | const fields = immutableAssign(baseCorrectParams, { category: 125 }) | 530 | const fields = { ...baseCorrectParams, category: 125 } |
526 | 531 | ||
527 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 532 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
528 | }) | 533 | }) |
529 | 534 | ||
530 | it('Should fail with a bad licence', async function () { | 535 | it('Should fail with a bad licence', async function () { |
531 | const fields = immutableAssign(baseCorrectParams, { licence: 125 }) | 536 | const fields = { ...baseCorrectParams, licence: 125 } |
532 | 537 | ||
533 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 538 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
534 | }) | 539 | }) |
535 | 540 | ||
536 | it('Should fail with a bad language', async function () { | 541 | it('Should fail with a bad language', async function () { |
537 | const fields = immutableAssign(baseCorrectParams, { language: 'a'.repeat(15) }) | 542 | const fields = { ...baseCorrectParams, language: 'a'.repeat(15) } |
538 | 543 | ||
539 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 544 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
540 | }) | 545 | }) |
541 | 546 | ||
542 | it('Should fail with a long description', async function () { | 547 | it('Should fail with a long description', async function () { |
543 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(2500) }) | 548 | const fields = { ...baseCorrectParams, description: 'super'.repeat(2500) } |
544 | 549 | ||
545 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 550 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
546 | }) | 551 | }) |
547 | 552 | ||
548 | it('Should fail with a long support text', async function () { | 553 | it('Should fail with a long support text', async function () { |
549 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) | 554 | const fields = { ...baseCorrectParams, support: 'super'.repeat(201) } |
550 | 555 | ||
551 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 556 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
552 | }) | 557 | }) |
553 | 558 | ||
554 | it('Should fail with a bad channel', async function () { | 559 | it('Should fail with a bad channel', async function () { |
555 | const fields = immutableAssign(baseCorrectParams, { channelId: 545454 }) | 560 | const fields = { ...baseCorrectParams, channelId: 545454 } |
556 | 561 | ||
557 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 562 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
558 | }) | 563 | }) |
559 | 564 | ||
560 | it('Should fail with too many tags', async function () { | 565 | it('Should fail with too many tags', async function () { |
561 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] }) | 566 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] } |
562 | 567 | ||
563 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 568 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
564 | }) | 569 | }) |
565 | 570 | ||
566 | it('Should fail with a tag length too low', async function () { | 571 | it('Should fail with a tag length too low', async function () { |
567 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 't' ] }) | 572 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 't' ] } |
568 | 573 | ||
569 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 574 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
570 | }) | 575 | }) |
571 | 576 | ||
572 | it('Should fail with a tag length too big', async function () { | 577 | it('Should fail with a tag length too big', async function () { |
573 | const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] }) | 578 | const fields = { ...baseCorrectParams, tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] } |
574 | 579 | ||
575 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 580 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
576 | }) | 581 | }) |
577 | 582 | ||
578 | it('Should fail with a bad schedule update (miss updateAt)', async function () { | 583 | it('Should fail with a bad schedule update (miss updateAt)', async function () { |
579 | const fields = immutableAssign(baseCorrectParams, { scheduleUpdate: { privacy: VideoPrivacy.PUBLIC } }) | 584 | const fields = { ...baseCorrectParams, scheduleUpdate: { privacy: VideoPrivacy.PUBLIC } } |
580 | 585 | ||
581 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 586 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
582 | }) | 587 | }) |
583 | 588 | ||
584 | it('Should fail with a bad schedule update (wrong updateAt)', async function () { | 589 | it('Should fail with a bad schedule update (wrong updateAt)', async function () { |
585 | const fields = immutableAssign(baseCorrectParams, { scheduleUpdate: { updateAt: 'toto', privacy: VideoPrivacy.PUBLIC } }) | 590 | const fields = { ...baseCorrectParams, scheduleUpdate: { updateAt: 'toto', privacy: VideoPrivacy.PUBLIC } } |
586 | 591 | ||
587 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 592 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
588 | }) | 593 | }) |
589 | 594 | ||
590 | it('Should fail with a bad originally published at param', async function () { | 595 | it('Should fail with a bad originally published at param', async function () { |
591 | const fields = immutableAssign(baseCorrectParams, { originallyPublishedAt: 'toto' }) | 596 | const fields = { ...baseCorrectParams, originallyPublishedAt: 'toto' } |
592 | 597 | ||
593 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 598 | await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
594 | }) | 599 | }) |
@@ -672,7 +677,7 @@ describe('Test videos API validator', function () { | |||
672 | it('Should fail with a video of another server') | 677 | it('Should fail with a video of another server') |
673 | 678 | ||
674 | it('Shoud report the appropriate error', async function () { | 679 | it('Shoud report the appropriate error', async function () { |
675 | const fields = immutableAssign(baseCorrectParams, { licence: 125 }) | 680 | const fields = { ...baseCorrectParams, licence: 125 } |
676 | 681 | ||
677 | const res = await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) | 682 | const res = await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) |
678 | const error = res.body as PeerTubeProblemDocument | 683 | const error = res.body as PeerTubeProblemDocument |
diff --git a/server/tests/api/live/live.ts b/server/tests/api/live/live.ts index f9a162df6..999a49051 100644 --- a/server/tests/api/live/live.ts +++ b/server/tests/api/live/live.ts | |||
@@ -7,7 +7,6 @@ import { ffprobePromise, getVideoStreamFromFile } from '@server/helpers/ffprobe- | |||
7 | import { LiveVideo, LiveVideoCreate, Video, VideoDetails, VideoPrivacy, VideoState, VideoStreamingPlaylistType } from '@shared/models' | 7 | import { LiveVideo, LiveVideoCreate, Video, VideoDetails, VideoPrivacy, VideoState, VideoStreamingPlaylistType } from '@shared/models' |
8 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' | 8 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' |
9 | import { | 9 | import { |
10 | buildServerDirectory, | ||
11 | checkLiveCleanup, | 10 | checkLiveCleanup, |
12 | checkLiveSegmentHash, | 11 | checkLiveSegmentHash, |
13 | checkResolutionsInMasterPlaylist, | 12 | checkResolutionsInMasterPlaylist, |
@@ -532,7 +531,7 @@ describe('Test live', function () { | |||
532 | } | 531 | } |
533 | 532 | ||
534 | const filename = `${video.uuid}-${resolution}-fragmented.mp4` | 533 | const filename = `${video.uuid}-${resolution}-fragmented.mp4` |
535 | const segmentPath = buildServerDirectory(servers[0], join('streaming-playlists', 'hls', video.uuid, filename)) | 534 | const segmentPath = servers[0].serversCommand.buildDirectory(join('streaming-playlists', 'hls', video.uuid, filename)) |
536 | 535 | ||
537 | const probe = await ffprobePromise(segmentPath) | 536 | const probe = await ffprobePromise(segmentPath) |
538 | const videoStream = await getVideoStreamFromFile(segmentPath, probe) | 537 | const videoStream = await getVideoStreamFromFile(segmentPath, probe) |
diff --git a/server/tests/api/notifications/moderation-notifications.ts b/server/tests/api/notifications/moderation-notifications.ts index 229f78811..99b434606 100644 --- a/server/tests/api/notifications/moderation-notifications.ts +++ b/server/tests/api/notifications/moderation-notifications.ts | |||
@@ -20,7 +20,6 @@ import { | |||
20 | createUser, | 20 | createUser, |
21 | generateUserAccessToken, | 21 | generateUserAccessToken, |
22 | getVideoIdFromUUID, | 22 | getVideoIdFromUUID, |
23 | immutableAssign, | ||
24 | MockInstancesIndex, | 23 | MockInstancesIndex, |
25 | MockSmtpServer, | 24 | MockSmtpServer, |
26 | prepareNotificationsTest, | 25 | prepareNotificationsTest, |
@@ -347,7 +346,7 @@ describe('Test moderation notifications', function () { | |||
347 | await checkUserRegistered(baseParams, 'user_45', 'presence') | 346 | await checkUserRegistered(baseParams, 'user_45', 'presence') |
348 | 347 | ||
349 | const userOverride = { socketNotifications: userNotifications, token: userAccessToken, check: { web: true, mail: false } } | 348 | const userOverride = { socketNotifications: userNotifications, token: userAccessToken, check: { web: true, mail: false } } |
350 | await checkUserRegistered(immutableAssign(baseParams, userOverride), 'user_45', 'absence') | 349 | await checkUserRegistered({ ...baseParams, ...userOverride }, 'user_45', 'absence') |
351 | }) | 350 | }) |
352 | }) | 351 | }) |
353 | 352 | ||
@@ -389,7 +388,7 @@ describe('Test moderation notifications', function () { | |||
389 | await checkNewInstanceFollower(baseParams, 'localhost:' + servers[2].port, 'presence') | 388 | await checkNewInstanceFollower(baseParams, 'localhost:' + servers[2].port, 'presence') |
390 | 389 | ||
391 | const userOverride = { socketNotifications: userNotifications, token: userAccessToken, check: { web: true, mail: false } } | 390 | const userOverride = { socketNotifications: userNotifications, token: userAccessToken, check: { web: true, mail: false } } |
392 | await checkNewInstanceFollower(immutableAssign(baseParams, userOverride), 'localhost:' + servers[2].port, 'absence') | 391 | await checkNewInstanceFollower({ ...baseParams, ...userOverride }, 'localhost:' + servers[2].port, 'absence') |
393 | }) | 392 | }) |
394 | 393 | ||
395 | it('Should send a notification on auto follow back', async function () { | 394 | it('Should send a notification on auto follow back', async function () { |
@@ -416,7 +415,7 @@ describe('Test moderation notifications', function () { | |||
416 | await checkAutoInstanceFollowing(baseParams, followerHost, followingHost, 'presence') | 415 | await checkAutoInstanceFollowing(baseParams, followerHost, followingHost, 'presence') |
417 | 416 | ||
418 | const userOverride = { socketNotifications: userNotifications, token: userAccessToken, check: { web: true, mail: false } } | 417 | const userOverride = { socketNotifications: userNotifications, token: userAccessToken, check: { web: true, mail: false } } |
419 | await checkAutoInstanceFollowing(immutableAssign(baseParams, userOverride), followerHost, followingHost, 'absence') | 418 | await checkAutoInstanceFollowing({ ...baseParams, ...userOverride }, followerHost, followingHost, 'absence') |
420 | 419 | ||
421 | config.followings.instance.autoFollowBack.enabled = false | 420 | config.followings.instance.autoFollowBack.enabled = false |
422 | await servers[0].configCommand.updateCustomSubConfig({ newConfig: config }) | 421 | await servers[0].configCommand.updateCustomSubConfig({ newConfig: config }) |
@@ -476,7 +475,9 @@ describe('Test moderation notifications', function () { | |||
476 | 475 | ||
477 | currentCustomConfig = await servers[0].configCommand.getCustomConfig() | 476 | currentCustomConfig = await servers[0].configCommand.getCustomConfig() |
478 | 477 | ||
479 | const autoBlacklistTestsCustomConfig = immutableAssign(currentCustomConfig, { | 478 | const autoBlacklistTestsCustomConfig = { |
479 | ...currentCustomConfig, | ||
480 | |||
480 | autoBlacklist: { | 481 | autoBlacklist: { |
481 | videos: { | 482 | videos: { |
482 | ofUsers: { | 483 | ofUsers: { |
@@ -484,7 +485,7 @@ describe('Test moderation notifications', function () { | |||
484 | } | 485 | } |
485 | } | 486 | } |
486 | } | 487 | } |
487 | }) | 488 | } |
488 | 489 | ||
489 | // enable transcoding otherwise own publish notification after transcoding not expected | 490 | // enable transcoding otherwise own publish notification after transcoding not expected |
490 | autoBlacklistTestsCustomConfig.transcoding.enabled = true | 491 | autoBlacklistTestsCustomConfig.transcoding.enabled = true |
diff --git a/server/tests/api/notifications/notifications-api.ts b/server/tests/api/notifications/notifications-api.ts index 447492c5f..e5864f1c2 100644 --- a/server/tests/api/notifications/notifications-api.ts +++ b/server/tests/api/notifications/notifications-api.ts | |||
@@ -8,7 +8,6 @@ import { | |||
8 | cleanupTests, | 8 | cleanupTests, |
9 | getAllNotificationsSettings, | 9 | getAllNotificationsSettings, |
10 | getMyUserInformation, | 10 | getMyUserInformation, |
11 | immutableAssign, | ||
12 | MockSmtpServer, | 11 | MockSmtpServer, |
13 | prepareNotificationsTest, | 12 | prepareNotificationsTest, |
14 | ServerInfo, | 13 | ServerInfo, |
@@ -118,7 +117,7 @@ describe('Test notifications API', function () { | |||
118 | const { name, uuid } = await uploadRandomVideo(server) | 117 | const { name, uuid } = await uploadRandomVideo(server) |
119 | 118 | ||
120 | const check = { web: true, mail: true } | 119 | const check = { web: true, mail: true } |
121 | await checkNewVideoFromSubscription(immutableAssign(baseParams, { check }), name, uuid, 'absence') | 120 | await checkNewVideoFromSubscription({ ...baseParams, ...check }, name, uuid, 'absence') |
122 | }) | 121 | }) |
123 | 122 | ||
124 | it('Should only have web notifications', async function () { | 123 | it('Should only have web notifications', async function () { |
@@ -139,12 +138,12 @@ describe('Test notifications API', function () { | |||
139 | 138 | ||
140 | { | 139 | { |
141 | const check = { mail: true, web: false } | 140 | const check = { mail: true, web: false } |
142 | await checkNewVideoFromSubscription(immutableAssign(baseParams, { check }), name, uuid, 'absence') | 141 | await checkNewVideoFromSubscription({ ...baseParams, ...check }, name, uuid, 'absence') |
143 | } | 142 | } |
144 | 143 | ||
145 | { | 144 | { |
146 | const check = { mail: false, web: true } | 145 | const check = { mail: false, web: true } |
147 | await checkNewVideoFromSubscription(immutableAssign(baseParams, { check }), name, uuid, 'presence') | 146 | await checkNewVideoFromSubscription({ ...baseParams, ...check }, name, uuid, 'presence') |
148 | } | 147 | } |
149 | }) | 148 | }) |
150 | 149 | ||
@@ -166,12 +165,12 @@ describe('Test notifications API', function () { | |||
166 | 165 | ||
167 | { | 166 | { |
168 | const check = { mail: false, web: true } | 167 | const check = { mail: false, web: true } |
169 | await checkNewVideoFromSubscription(immutableAssign(baseParams, { check }), name, uuid, 'absence') | 168 | await checkNewVideoFromSubscription({ ...baseParams, ...check }, name, uuid, 'absence') |
170 | } | 169 | } |
171 | 170 | ||
172 | { | 171 | { |
173 | const check = { mail: true, web: false } | 172 | const check = { mail: true, web: false } |
174 | await checkNewVideoFromSubscription(immutableAssign(baseParams, { check }), name, uuid, 'presence') | 173 | await checkNewVideoFromSubscription({ ...baseParams, ...check }, name, uuid, 'presence') |
175 | } | 174 | } |
176 | }) | 175 | }) |
177 | 176 | ||
diff --git a/server/tests/api/redundancy/manage-redundancy.ts b/server/tests/api/redundancy/manage-redundancy.ts index 363e4cbfe..03857f512 100644 --- a/server/tests/api/redundancy/manage-redundancy.ts +++ b/server/tests/api/redundancy/manage-redundancy.ts | |||
@@ -12,8 +12,7 @@ import { | |||
12 | setAccessTokensToServers, | 12 | setAccessTokensToServers, |
13 | uploadVideo, | 13 | uploadVideo, |
14 | uploadVideoAndGetId, | 14 | uploadVideoAndGetId, |
15 | waitJobs, | 15 | waitJobs |
16 | waitUntilLog | ||
17 | } from '@shared/extra-utils' | 16 | } from '@shared/extra-utils' |
18 | import { VideoPrivacy, VideoRedundanciesTarget } from '@shared/models' | 17 | import { VideoPrivacy, VideoRedundanciesTarget } from '@shared/models' |
19 | 18 | ||
@@ -91,7 +90,7 @@ describe('Test manage videos redundancy', function () { | |||
91 | this.timeout(120000) | 90 | this.timeout(120000) |
92 | 91 | ||
93 | await waitJobs(servers) | 92 | await waitJobs(servers) |
94 | await waitUntilLog(servers[0], 'Duplicated ', 10) | 93 | await servers[0].serversCommand.waitUntilLog('Duplicated ', 10) |
95 | await waitJobs(servers) | 94 | await waitJobs(servers) |
96 | 95 | ||
97 | const body = await commands[1].listVideos({ target: 'remote-videos' }) | 96 | const body = await commands[1].listVideos({ target: 'remote-videos' }) |
@@ -214,7 +213,7 @@ describe('Test manage videos redundancy', function () { | |||
214 | await commands[0].addVideo({ videoId }) | 213 | await commands[0].addVideo({ videoId }) |
215 | 214 | ||
216 | await waitJobs(servers) | 215 | await waitJobs(servers) |
217 | await waitUntilLog(servers[0], 'Duplicated ', 15) | 216 | await servers[0].serversCommand.waitUntilLog('Duplicated ', 15) |
218 | await waitJobs(servers) | 217 | await waitJobs(servers) |
219 | 218 | ||
220 | { | 219 | { |
diff --git a/server/tests/api/redundancy/redundancy-constraints.ts b/server/tests/api/redundancy/redundancy-constraints.ts index 82d952471..a31278de7 100644 --- a/server/tests/api/redundancy/redundancy-constraints.ts +++ b/server/tests/api/redundancy/redundancy-constraints.ts | |||
@@ -11,8 +11,7 @@ import { | |||
11 | setAccessTokensToServers, | 11 | setAccessTokensToServers, |
12 | updateVideo, | 12 | updateVideo, |
13 | uploadVideo, | 13 | uploadVideo, |
14 | waitJobs, | 14 | waitJobs |
15 | waitUntilLog | ||
16 | } from '@shared/extra-utils' | 15 | } from '@shared/extra-utils' |
17 | import { VideoPrivacy } from '@shared/models' | 16 | import { VideoPrivacy } from '@shared/models' |
18 | 17 | ||
@@ -97,7 +96,7 @@ describe('Test redundancy constraints', function () { | |||
97 | this.timeout(120000) | 96 | this.timeout(120000) |
98 | 97 | ||
99 | await waitJobs(servers) | 98 | await waitJobs(servers) |
100 | await waitUntilLog(remoteServer, 'Duplicated ', 5) | 99 | await remoteServer.serversCommand.waitUntilLog('Duplicated ', 5) |
101 | await waitJobs(servers) | 100 | await waitJobs(servers) |
102 | 101 | ||
103 | { | 102 | { |
@@ -126,7 +125,7 @@ describe('Test redundancy constraints', function () { | |||
126 | 125 | ||
127 | await uploadWrapper('video 2 server 2') | 126 | await uploadWrapper('video 2 server 2') |
128 | 127 | ||
129 | await waitUntilLog(remoteServer, 'Duplicated ', 10) | 128 | await remoteServer.serversCommand.waitUntilLog('Duplicated ', 10) |
130 | await waitJobs(servers) | 129 | await waitJobs(servers) |
131 | 130 | ||
132 | { | 131 | { |
@@ -155,7 +154,7 @@ describe('Test redundancy constraints', function () { | |||
155 | 154 | ||
156 | await uploadWrapper('video 3 server 2') | 155 | await uploadWrapper('video 3 server 2') |
157 | 156 | ||
158 | await waitUntilLog(remoteServer, 'Duplicated ', 15) | 157 | await remoteServer.serversCommand.waitUntilLog('Duplicated ', 15) |
159 | await waitJobs(servers) | 158 | await waitJobs(servers) |
160 | 159 | ||
161 | { | 160 | { |
@@ -176,7 +175,7 @@ describe('Test redundancy constraints', function () { | |||
176 | await waitJobs(servers) | 175 | await waitJobs(servers) |
177 | 176 | ||
178 | await uploadWrapper('video 4 server 2') | 177 | await uploadWrapper('video 4 server 2') |
179 | await waitUntilLog(remoteServer, 'Duplicated ', 20) | 178 | await remoteServer.serversCommand.waitUntilLog('Duplicated ', 20) |
180 | await waitJobs(servers) | 179 | await waitJobs(servers) |
181 | 180 | ||
182 | { | 181 | { |
diff --git a/server/tests/api/redundancy/redundancy.ts b/server/tests/api/redundancy/redundancy.ts index 56a2af395..00a5e86cc 100644 --- a/server/tests/api/redundancy/redundancy.ts +++ b/server/tests/api/redundancy/redundancy.ts | |||
@@ -14,7 +14,6 @@ import { | |||
14 | flushAndRunMultipleServers, | 14 | flushAndRunMultipleServers, |
15 | getVideo, | 15 | getVideo, |
16 | getVideoWithToken, | 16 | getVideoWithToken, |
17 | immutableAssign, | ||
18 | killallServers, | 17 | killallServers, |
19 | makeGetRequest, | 18 | makeGetRequest, |
20 | removeVideo, | 19 | removeVideo, |
@@ -26,8 +25,7 @@ import { | |||
26 | uploadVideo, | 25 | uploadVideo, |
27 | viewVideo, | 26 | viewVideo, |
28 | wait, | 27 | wait, |
29 | waitJobs, | 28 | waitJobs |
30 | waitUntilLog | ||
31 | } from '@shared/extra-utils' | 29 | } from '@shared/extra-utils' |
32 | import { VideoDetails, VideoPrivacy, VideoRedundancyStrategy, VideoRedundancyStrategyWithManual } from '@shared/models' | 30 | import { VideoDetails, VideoPrivacy, VideoRedundancyStrategy, VideoRedundancyStrategyWithManual } from '@shared/models' |
33 | 31 | ||
@@ -53,11 +51,13 @@ async function flushAndRunServers (strategy: VideoRedundancyStrategy | null, add | |||
53 | 51 | ||
54 | if (strategy !== null) { | 52 | if (strategy !== null) { |
55 | strategies.push( | 53 | strategies.push( |
56 | immutableAssign({ | 54 | { |
57 | min_lifetime: '1 hour', | 55 | min_lifetime: '1 hour', |
58 | strategy: strategy, | 56 | strategy: strategy, |
59 | size: '400KB' | 57 | size: '400KB', |
60 | }, additionalParams) | 58 | |
59 | ...additionalParams | ||
60 | } | ||
61 | ) | 61 | ) |
62 | } | 62 | } |
63 | 63 | ||
@@ -316,7 +316,7 @@ describe('Test videos redundancy', function () { | |||
316 | this.timeout(80000) | 316 | this.timeout(80000) |
317 | 317 | ||
318 | await waitJobs(servers) | 318 | await waitJobs(servers) |
319 | await waitUntilLog(servers[0], 'Duplicated ', 5) | 319 | await servers[0].serversCommand.waitUntilLog('Duplicated ', 5) |
320 | await waitJobs(servers) | 320 | await waitJobs(servers) |
321 | 321 | ||
322 | await check2Webseeds() | 322 | await check2Webseeds() |
@@ -335,7 +335,7 @@ describe('Test videos redundancy', function () { | |||
335 | await check1WebSeed() | 335 | await check1WebSeed() |
336 | await check0PlaylistRedundancies() | 336 | await check0PlaylistRedundancies() |
337 | 337 | ||
338 | await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].internalServerNumber, [ 'videos', join('playlists', 'hls') ]) | 338 | await checkVideoFilesWereRemoved(video1Server2UUID, servers[0], [ 'videos', join('playlists', 'hls') ]) |
339 | }) | 339 | }) |
340 | 340 | ||
341 | after(async function () { | 341 | after(async function () { |
@@ -366,7 +366,7 @@ describe('Test videos redundancy', function () { | |||
366 | this.timeout(80000) | 366 | this.timeout(80000) |
367 | 367 | ||
368 | await waitJobs(servers) | 368 | await waitJobs(servers) |
369 | await waitUntilLog(servers[0], 'Duplicated ', 5) | 369 | await servers[0].serversCommand.waitUntilLog('Duplicated ', 5) |
370 | await waitJobs(servers) | 370 | await waitJobs(servers) |
371 | 371 | ||
372 | await check2Webseeds() | 372 | await check2Webseeds() |
@@ -385,7 +385,7 @@ describe('Test videos redundancy', function () { | |||
385 | await check1WebSeed() | 385 | await check1WebSeed() |
386 | await check0PlaylistRedundancies() | 386 | await check0PlaylistRedundancies() |
387 | 387 | ||
388 | await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].internalServerNumber, [ 'videos' ]) | 388 | await checkVideoFilesWereRemoved(video1Server2UUID, servers[0], [ 'videos' ]) |
389 | }) | 389 | }) |
390 | 390 | ||
391 | after(async function () { | 391 | after(async function () { |
@@ -438,7 +438,7 @@ describe('Test videos redundancy', function () { | |||
438 | this.timeout(80000) | 438 | this.timeout(80000) |
439 | 439 | ||
440 | await waitJobs(servers) | 440 | await waitJobs(servers) |
441 | await waitUntilLog(servers[0], 'Duplicated ', 5) | 441 | await servers[0].serversCommand.waitUntilLog('Duplicated ', 5) |
442 | await waitJobs(servers) | 442 | await waitJobs(servers) |
443 | 443 | ||
444 | await check2Webseeds() | 444 | await check2Webseeds() |
@@ -454,7 +454,7 @@ describe('Test videos redundancy', function () { | |||
454 | await waitJobs(servers) | 454 | await waitJobs(servers) |
455 | 455 | ||
456 | for (const server of servers) { | 456 | for (const server of servers) { |
457 | await checkVideoFilesWereRemoved(video1Server2UUID, server.internalServerNumber) | 457 | await checkVideoFilesWereRemoved(video1Server2UUID, server) |
458 | } | 458 | } |
459 | }) | 459 | }) |
460 | 460 | ||
@@ -502,7 +502,7 @@ describe('Test videos redundancy', function () { | |||
502 | await waitJobs(servers) | 502 | await waitJobs(servers) |
503 | 503 | ||
504 | await waitJobs(servers) | 504 | await waitJobs(servers) |
505 | await waitUntilLog(servers[0], 'Duplicated ', 1) | 505 | await servers[0].serversCommand.waitUntilLog('Duplicated ', 1) |
506 | await waitJobs(servers) | 506 | await waitJobs(servers) |
507 | 507 | ||
508 | await check1PlaylistRedundancies() | 508 | await check1PlaylistRedundancies() |
@@ -517,7 +517,7 @@ describe('Test videos redundancy', function () { | |||
517 | await waitJobs(servers) | 517 | await waitJobs(servers) |
518 | 518 | ||
519 | for (const server of servers) { | 519 | for (const server of servers) { |
520 | await checkVideoFilesWereRemoved(video1Server2UUID, server.internalServerNumber) | 520 | await checkVideoFilesWereRemoved(video1Server2UUID, server) |
521 | } | 521 | } |
522 | }) | 522 | }) |
523 | 523 | ||
@@ -547,7 +547,7 @@ describe('Test videos redundancy', function () { | |||
547 | this.timeout(80000) | 547 | this.timeout(80000) |
548 | 548 | ||
549 | await waitJobs(servers) | 549 | await waitJobs(servers) |
550 | await waitUntilLog(servers[0], 'Duplicated ', 5) | 550 | await servers[0].serversCommand.waitUntilLog('Duplicated ', 5) |
551 | await waitJobs(servers) | 551 | await waitJobs(servers) |
552 | 552 | ||
553 | await check2Webseeds() | 553 | await check2Webseeds() |
@@ -575,7 +575,7 @@ describe('Test videos redundancy', function () { | |||
575 | await check1WebSeed() | 575 | await check1WebSeed() |
576 | await check0PlaylistRedundancies() | 576 | await check0PlaylistRedundancies() |
577 | 577 | ||
578 | await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ 'videos' ]) | 578 | await checkVideoFilesWereRemoved(video1Server2UUID, servers[0], [ 'videos' ]) |
579 | }) | 579 | }) |
580 | 580 | ||
581 | after(async function () { | 581 | after(async function () { |
@@ -658,7 +658,7 @@ describe('Test videos redundancy', function () { | |||
658 | await enableRedundancyOnServer1() | 658 | await enableRedundancyOnServer1() |
659 | 659 | ||
660 | await waitJobs(servers) | 660 | await waitJobs(servers) |
661 | await waitUntilLog(servers[0], 'Duplicated ', 5) | 661 | await servers[0].serversCommand.waitUntilLog('Duplicated ', 5) |
662 | await waitJobs(servers) | 662 | await waitJobs(servers) |
663 | 663 | ||
664 | await check2Webseeds(video1Server2UUID) | 664 | await check2Webseeds(video1Server2UUID) |
@@ -715,7 +715,7 @@ describe('Test videos redundancy', function () { | |||
715 | 715 | ||
716 | await waitJobs(servers) | 716 | await waitJobs(servers) |
717 | 717 | ||
718 | await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].internalServerNumber, [ join('redundancy', 'hls') ]) | 718 | await checkVideoFilesWereRemoved(video1Server2UUID, servers[0], [ join('redundancy', 'hls') ]) |
719 | }) | 719 | }) |
720 | 720 | ||
721 | after(async function () { | 721 | after(async function () { |
diff --git a/server/tests/api/search/search-index.ts b/server/tests/api/search/search-index.ts index e4c5f5796..306f84c3a 100644 --- a/server/tests/api/search/search-index.ts +++ b/server/tests/api/search/search-index.ts | |||
@@ -2,16 +2,8 @@ | |||
2 | 2 | ||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { | 5 | import { cleanupTests, flushAndRunServer, SearchCommand, ServerInfo, setAccessTokensToServers, uploadVideo } from '@shared/extra-utils' |
6 | cleanupTests, | 6 | import { BooleanBothQuery, VideoPlaylistPrivacy, VideoPlaylistType, VideosSearchQuery } from '@shared/models' |
7 | flushAndRunServer, | ||
8 | immutableAssign, | ||
9 | SearchCommand, | ||
10 | ServerInfo, | ||
11 | setAccessTokensToServers, | ||
12 | uploadVideo | ||
13 | } from '@shared/extra-utils' | ||
14 | import { VideoPlaylistPrivacy, VideoPlaylistType, VideosSearchQuery } from '@shared/models' | ||
15 | 7 | ||
16 | const expect = chai.expect | 8 | const expect = chai.expect |
17 | 9 | ||
@@ -174,32 +166,32 @@ describe('Test videos search', function () { | |||
174 | } | 166 | } |
175 | 167 | ||
176 | { | 168 | { |
177 | const search = immutableAssign(baseSearch, { startDate: '2018-10-01T10:54:46.396Z' }) | 169 | const search = { ...baseSearch, startDate: '2018-10-01T10:54:46.396Z' } |
178 | await check(search, false) | 170 | await check(search, false) |
179 | } | 171 | } |
180 | 172 | ||
181 | { | 173 | { |
182 | const search = immutableAssign(baseSearch, { tagsAllOf: [ 'toto', 'framasoft' ] }) | 174 | const search = { ...baseSearch, tagsAllOf: [ 'toto', 'framasoft' ] } |
183 | await check(search, false) | 175 | await check(search, false) |
184 | } | 176 | } |
185 | 177 | ||
186 | { | 178 | { |
187 | const search = immutableAssign(baseSearch, { durationMin: 2000 }) | 179 | const search = { ...baseSearch, durationMin: 2000 } |
188 | await check(search, false) | 180 | await check(search, false) |
189 | } | 181 | } |
190 | 182 | ||
191 | { | 183 | { |
192 | const search = immutableAssign(baseSearch, { nsfw: 'true' }) | 184 | const search = { ...baseSearch, nsfw: 'true' as BooleanBothQuery } |
193 | await check(search, false) | 185 | await check(search, false) |
194 | } | 186 | } |
195 | 187 | ||
196 | { | 188 | { |
197 | const search = immutableAssign(baseSearch, { nsfw: 'false' }) | 189 | const search = { ...baseSearch, nsfw: 'false' as BooleanBothQuery } |
198 | await check(search, true) | 190 | await check(search, true) |
199 | } | 191 | } |
200 | 192 | ||
201 | { | 193 | { |
202 | const search = immutableAssign(baseSearch, { nsfw: 'both' }) | 194 | const search = { ...baseSearch, nsfw: 'both' as BooleanBothQuery } |
203 | await check(search, true) | 195 | await check(search, true) |
204 | } | 196 | } |
205 | }) | 197 | }) |
diff --git a/server/tests/api/search/search-videos.ts b/server/tests/api/search/search-videos.ts index 513538917..66f5f3182 100644 --- a/server/tests/api/search/search-videos.ts +++ b/server/tests/api/search/search-videos.ts | |||
@@ -5,7 +5,6 @@ import * as chai from 'chai' | |||
5 | import { | 5 | import { |
6 | cleanupTests, | 6 | cleanupTests, |
7 | flushAndRunServer, | 7 | flushAndRunServer, |
8 | immutableAssign, | ||
9 | SearchCommand, | 8 | SearchCommand, |
10 | ServerInfo, | 9 | ServerInfo, |
11 | setAccessTokensToServers, | 10 | setAccessTokensToServers, |
@@ -44,11 +43,11 @@ describe('Test videos search', function () { | |||
44 | } | 43 | } |
45 | await uploadVideo(server.url, server.accessToken, attributes1) | 44 | await uploadVideo(server.url, server.accessToken, attributes1) |
46 | 45 | ||
47 | const attributes2 = immutableAssign(attributes1, { name: attributes1.name + ' - 2', fixture: 'video_short.mp4' }) | 46 | const attributes2 = { ...attributes1, name: attributes1.name + ' - 2', fixture: 'video_short.mp4' } |
48 | await uploadVideo(server.url, server.accessToken, attributes2) | 47 | await uploadVideo(server.url, server.accessToken, attributes2) |
49 | 48 | ||
50 | { | 49 | { |
51 | const attributes3 = immutableAssign(attributes1, { name: attributes1.name + ' - 3', language: undefined }) | 50 | const attributes3 = { ...attributes1, name: attributes1.name + ' - 3', language: undefined } |
52 | const res = await uploadVideo(server.url, server.accessToken, attributes3) | 51 | const res = await uploadVideo(server.url, server.accessToken, attributes3) |
53 | const videoId = res.body.video.id | 52 | const videoId = res.body.video.id |
54 | videoUUID = res.body.video.uuid | 53 | videoUUID = res.body.video.uuid |
@@ -68,26 +67,23 @@ describe('Test videos search', function () { | |||
68 | }) | 67 | }) |
69 | } | 68 | } |
70 | 69 | ||
71 | const attributes4 = immutableAssign(attributes1, { name: attributes1.name + ' - 4', language: 'pl', nsfw: true }) | 70 | const attributes4 = { ...attributes1, name: attributes1.name + ' - 4', language: 'pl', nsfw: true } |
72 | await uploadVideo(server.url, server.accessToken, attributes4) | 71 | await uploadVideo(server.url, server.accessToken, attributes4) |
73 | 72 | ||
74 | await wait(1000) | 73 | await wait(1000) |
75 | 74 | ||
76 | startDate = new Date().toISOString() | 75 | startDate = new Date().toISOString() |
77 | 76 | ||
78 | const attributes5 = immutableAssign(attributes1, { name: attributes1.name + ' - 5', licence: 2, language: undefined }) | 77 | const attributes5 = { ...attributes1, name: attributes1.name + ' - 5', licence: 2, language: undefined } |
79 | await uploadVideo(server.url, server.accessToken, attributes5) | 78 | await uploadVideo(server.url, server.accessToken, attributes5) |
80 | 79 | ||
81 | const attributes6 = immutableAssign(attributes1, { name: attributes1.name + ' - 6', tags: [ 't1', 't2' ] }) | 80 | const attributes6 = { ...attributes1, name: attributes1.name + ' - 6', tags: [ 't1', 't2' ] } |
82 | await uploadVideo(server.url, server.accessToken, attributes6) | 81 | await uploadVideo(server.url, server.accessToken, attributes6) |
83 | 82 | ||
84 | const attributes7 = immutableAssign(attributes1, { | 83 | const attributes7 = { ...attributes1, name: attributes1.name + ' - 7', originallyPublishedAt: '2019-02-12T09:58:08.286Z' } |
85 | name: attributes1.name + ' - 7', | ||
86 | originallyPublishedAt: '2019-02-12T09:58:08.286Z' | ||
87 | }) | ||
88 | await uploadVideo(server.url, server.accessToken, attributes7) | 84 | await uploadVideo(server.url, server.accessToken, attributes7) |
89 | 85 | ||
90 | const attributes8 = immutableAssign(attributes1, { name: attributes1.name + ' - 8', licence: 4 }) | 86 | const attributes8 = { ...attributes1, name: attributes1.name + ' - 8', licence: 4 } |
91 | await uploadVideo(server.url, server.accessToken, attributes8) | 87 | await uploadVideo(server.url, server.accessToken, attributes8) |
92 | } | 88 | } |
93 | 89 | ||
@@ -101,7 +97,7 @@ describe('Test videos search', function () { | |||
101 | } | 97 | } |
102 | await uploadVideo(server.url, server.accessToken, attributes) | 98 | await uploadVideo(server.url, server.accessToken, attributes) |
103 | 99 | ||
104 | await uploadVideo(server.url, server.accessToken, immutableAssign(attributes, { name: attributes.name + ' duplicate' })) | 100 | await uploadVideo(server.url, server.accessToken, { ...attributes, name: attributes.name + ' duplicate' }) |
105 | } | 101 | } |
106 | 102 | ||
107 | { | 103 | { |
@@ -122,10 +118,10 @@ describe('Test videos search', function () { | |||
122 | category: 1 | 118 | category: 1 |
123 | } | 119 | } |
124 | await uploadVideo(server.url, server.accessToken, attributes1) | 120 | await uploadVideo(server.url, server.accessToken, attributes1) |
125 | await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { category: 2 })) | 121 | await uploadVideo(server.url, server.accessToken, { ...attributes1, category: 2 }) |
126 | 122 | ||
127 | await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { tags: [ 'cccc', 'dddd' ] })) | 123 | await uploadVideo(server.url, server.accessToken, { ...attributes1, tags: [ 'cccc', 'dddd' ] }) |
128 | await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { tags: [ 'eeee', 'ffff' ] })) | 124 | await uploadVideo(server.url, server.accessToken, { ...attributes1, tags: [ 'eeee', 'ffff' ] }) |
129 | } | 125 | } |
130 | 126 | ||
131 | { | 127 | { |
@@ -134,7 +130,7 @@ describe('Test videos search', function () { | |||
134 | category: 1 | 130 | category: 1 |
135 | } | 131 | } |
136 | await uploadVideo(server.url, server.accessToken, attributes1) | 132 | await uploadVideo(server.url, server.accessToken, attributes1) |
137 | await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { category: 2 })) | 133 | await uploadVideo(server.url, server.accessToken, { ...attributes1, category: 2 }) |
138 | } | 134 | } |
139 | 135 | ||
140 | command = server.searchCommand | 136 | command = server.searchCommand |
@@ -414,7 +410,7 @@ describe('Test videos search', function () { | |||
414 | } | 410 | } |
415 | 411 | ||
416 | { | 412 | { |
417 | const query = immutableAssign(baseQuery, { originallyPublishedStartDate: '2019-02-11T09:58:08.286Z' }) | 413 | const query = { ...baseQuery, originallyPublishedStartDate: '2019-02-11T09:58:08.286Z' } |
418 | const body = await command.advancedVideoSearch({ search: query }) | 414 | const body = await command.advancedVideoSearch({ search: query }) |
419 | 415 | ||
420 | expect(body.total).to.equal(1) | 416 | expect(body.total).to.equal(1) |
@@ -422,7 +418,7 @@ describe('Test videos search', function () { | |||
422 | } | 418 | } |
423 | 419 | ||
424 | { | 420 | { |
425 | const query = immutableAssign(baseQuery, { originallyPublishedEndDate: '2019-03-11T09:58:08.286Z' }) | 421 | const query = { ...baseQuery, originallyPublishedEndDate: '2019-03-11T09:58:08.286Z' } |
426 | const body = await command.advancedVideoSearch({ search: query }) | 422 | const body = await command.advancedVideoSearch({ search: query }) |
427 | 423 | ||
428 | expect(body.total).to.equal(1) | 424 | expect(body.total).to.equal(1) |
@@ -430,34 +426,36 @@ describe('Test videos search', function () { | |||
430 | } | 426 | } |
431 | 427 | ||
432 | { | 428 | { |
433 | const query = immutableAssign(baseQuery, { originallyPublishedEndDate: '2019-01-11T09:58:08.286Z' }) | 429 | const query = { ...baseQuery, originallyPublishedEndDate: '2019-01-11T09:58:08.286Z' } |
434 | const body = await command.advancedVideoSearch({ search: query }) | 430 | const body = await command.advancedVideoSearch({ search: query }) |
435 | 431 | ||
436 | expect(body.total).to.equal(0) | 432 | expect(body.total).to.equal(0) |
437 | } | 433 | } |
438 | 434 | ||
439 | { | 435 | { |
440 | const query = immutableAssign(baseQuery, { originallyPublishedStartDate: '2019-03-11T09:58:08.286Z' }) | 436 | const query = { ...baseQuery, originallyPublishedStartDate: '2019-03-11T09:58:08.286Z' } |
441 | const body = await command.advancedVideoSearch({ search: query }) | 437 | const body = await command.advancedVideoSearch({ search: query }) |
442 | 438 | ||
443 | expect(body.total).to.equal(0) | 439 | expect(body.total).to.equal(0) |
444 | } | 440 | } |
445 | 441 | ||
446 | { | 442 | { |
447 | const query = immutableAssign(baseQuery, { | 443 | const query = { |
444 | ...baseQuery, | ||
448 | originallyPublishedStartDate: '2019-01-11T09:58:08.286Z', | 445 | originallyPublishedStartDate: '2019-01-11T09:58:08.286Z', |
449 | originallyPublishedEndDate: '2019-01-10T09:58:08.286Z' | 446 | originallyPublishedEndDate: '2019-01-10T09:58:08.286Z' |
450 | }) | 447 | } |
451 | const body = await command.advancedVideoSearch({ search: query }) | 448 | const body = await command.advancedVideoSearch({ search: query }) |
452 | 449 | ||
453 | expect(body.total).to.equal(0) | 450 | expect(body.total).to.equal(0) |
454 | } | 451 | } |
455 | 452 | ||
456 | { | 453 | { |
457 | const query = immutableAssign(baseQuery, { | 454 | const query = { |
455 | ...baseQuery, | ||
458 | originallyPublishedStartDate: '2019-01-11T09:58:08.286Z', | 456 | originallyPublishedStartDate: '2019-01-11T09:58:08.286Z', |
459 | originallyPublishedEndDate: '2019-04-11T09:58:08.286Z' | 457 | originallyPublishedEndDate: '2019-04-11T09:58:08.286Z' |
460 | }) | 458 | } |
461 | const body = await command.advancedVideoSearch({ search: query }) | 459 | const body = await command.advancedVideoSearch({ search: query }) |
462 | 460 | ||
463 | expect(body.total).to.equal(1) | 461 | expect(body.total).to.equal(1) |
diff --git a/server/tests/api/server/handle-down.ts b/server/tests/api/server/handle-down.ts index dd06acb5e..d45c3ae8a 100644 --- a/server/tests/api/server/handle-down.ts +++ b/server/tests/api/server/handle-down.ts | |||
@@ -10,7 +10,6 @@ import { | |||
10 | flushAndRunMultipleServers, | 10 | flushAndRunMultipleServers, |
11 | getVideo, | 11 | getVideo, |
12 | getVideosList, | 12 | getVideosList, |
13 | immutableAssign, | ||
14 | killallServers, | 13 | killallServers, |
15 | reRunServer, | 14 | reRunServer, |
16 | ServerInfo, | 15 | ServerInfo, |
@@ -50,9 +49,7 @@ describe('Test handle downs', function () { | |||
50 | fixture: 'video_short1.webm' | 49 | fixture: 'video_short1.webm' |
51 | } | 50 | } |
52 | 51 | ||
53 | const unlistedVideoAttributes = immutableAssign(videoAttributes, { | 52 | const unlistedVideoAttributes = { ...videoAttributes, privacy: VideoPrivacy.UNLISTED } |
54 | privacy: VideoPrivacy.UNLISTED | ||
55 | }) | ||
56 | 53 | ||
57 | let checkAttributes: any | 54 | let checkAttributes: any |
58 | let unlistedCheckAttributes: any | 55 | let unlistedCheckAttributes: any |
@@ -97,9 +94,7 @@ describe('Test handle downs', function () { | |||
97 | } | 94 | } |
98 | ] | 95 | ] |
99 | } | 96 | } |
100 | unlistedCheckAttributes = immutableAssign(checkAttributes, { | 97 | unlistedCheckAttributes = { ...checkAttributes, privacy: VideoPrivacy.UNLISTED } |
101 | privacy: VideoPrivacy.UNLISTED | ||
102 | }) | ||
103 | 98 | ||
104 | // Get the access tokens | 99 | // Get the access tokens |
105 | await setAccessTokensToServers(servers) | 100 | await setAccessTokensToServers(servers) |
diff --git a/server/tests/api/server/logs.ts b/server/tests/api/server/logs.ts index 365f6cc2b..096d63e21 100644 --- a/server/tests/api/server/logs.ts +++ b/server/tests/api/server/logs.ts | |||
@@ -7,7 +7,6 @@ import { | |||
7 | flushAndRunServer, | 7 | flushAndRunServer, |
8 | killallServers, | 8 | killallServers, |
9 | LogsCommand, | 9 | LogsCommand, |
10 | makePingRequest, | ||
11 | reRunServer, | 10 | reRunServer, |
12 | ServerInfo, | 11 | ServerInfo, |
13 | setAccessTokensToServers, | 12 | setAccessTokensToServers, |
@@ -102,7 +101,7 @@ describe('Test logs', function () { | |||
102 | 101 | ||
103 | const now = new Date() | 102 | const now = new Date() |
104 | 103 | ||
105 | await makePingRequest(server) | 104 | await server.serversCommand.ping() |
106 | 105 | ||
107 | const body = await logsCommand.getLogs({ startDate: now, level: 'info' }) | 106 | const body = await logsCommand.getLogs({ startDate: now, level: 'info' }) |
108 | const logsString = JSON.stringify(body) | 107 | const logsString = JSON.stringify(body) |
@@ -119,7 +118,7 @@ describe('Test logs', function () { | |||
119 | 118 | ||
120 | const now = new Date() | 119 | const now = new Date() |
121 | 120 | ||
122 | await makePingRequest(server) | 121 | await server.serversCommand.ping() |
123 | 122 | ||
124 | const body = await logsCommand.getLogs({ startDate: now, level: 'info' }) | 123 | const body = await logsCommand.getLogs({ startDate: now, level: 'info' }) |
125 | const logsString = JSON.stringify(body) | 124 | const logsString = JSON.stringify(body) |
diff --git a/server/tests/api/server/plugins.ts b/server/tests/api/server/plugins.ts index d4a43276f..a81ac961a 100644 --- a/server/tests/api/server/plugins.ts +++ b/server/tests/api/server/plugins.ts | |||
@@ -14,8 +14,7 @@ import { | |||
14 | setAccessTokensToServers, | 14 | setAccessTokensToServers, |
15 | testHelloWorldRegisteredSettings, | 15 | testHelloWorldRegisteredSettings, |
16 | updateMyUser, | 16 | updateMyUser, |
17 | wait, | 17 | wait |
18 | waitUntilLog | ||
19 | } from '@shared/extra-utils' | 18 | } from '@shared/extra-utils' |
20 | import { PluginType, User } from '@shared/models' | 19 | import { PluginType, User } from '@shared/models' |
21 | 20 | ||
@@ -194,7 +193,7 @@ describe('Test plugins', function () { | |||
194 | it('Should have watched settings changes', async function () { | 193 | it('Should have watched settings changes', async function () { |
195 | this.timeout(10000) | 194 | this.timeout(10000) |
196 | 195 | ||
197 | await waitUntilLog(server, 'Settings changed!') | 196 | await server.serversCommand.waitUntilLog('Settings changed!') |
198 | }) | 197 | }) |
199 | 198 | ||
200 | it('Should get a plugin and a theme', async function () { | 199 | it('Should get a plugin and a theme', async function () { |
diff --git a/server/tests/api/users/users-multiple-servers.ts b/server/tests/api/users/users-multiple-servers.ts index 47056be78..7b650cb8f 100644 --- a/server/tests/api/users/users-multiple-servers.ts +++ b/server/tests/api/users/users-multiple-servers.ts | |||
@@ -227,7 +227,7 @@ describe('Test users with multiple servers', function () { | |||
227 | 227 | ||
228 | it('Should not have video files', async () => { | 228 | it('Should not have video files', async () => { |
229 | for (const server of servers) { | 229 | for (const server of servers) { |
230 | await checkVideoFilesWereRemoved(videoUUID, server.internalServerNumber) | 230 | await checkVideoFilesWereRemoved(videoUUID, server) |
231 | } | 231 | } |
232 | }) | 232 | }) |
233 | 233 | ||
diff --git a/server/tests/api/videos/audio-only.ts b/server/tests/api/videos/audio-only.ts index 7ddbd5cd9..9b516af81 100644 --- a/server/tests/api/videos/audio-only.ts +++ b/server/tests/api/videos/audio-only.ts | |||
@@ -5,7 +5,6 @@ import * as chai from 'chai' | |||
5 | import { join } from 'path' | 5 | import { join } from 'path' |
6 | import { getAudioStream, getVideoStreamSize } from '@server/helpers/ffprobe-utils' | 6 | import { getAudioStream, getVideoStreamSize } from '@server/helpers/ffprobe-utils' |
7 | import { | 7 | import { |
8 | buildServerDirectory, | ||
9 | cleanupTests, | 8 | cleanupTests, |
10 | doubleFollow, | 9 | doubleFollow, |
11 | flushAndRunMultipleServers, | 10 | flushAndRunMultipleServers, |
@@ -81,8 +80,8 @@ describe('Test audio only video transcoding', function () { | |||
81 | 80 | ||
82 | it('0p transcoded video should not have video', async function () { | 81 | it('0p transcoded video should not have video', async function () { |
83 | const paths = [ | 82 | const paths = [ |
84 | buildServerDirectory(servers[0], join('videos', videoUUID + '-0.mp4')), | 83 | servers[0].serversCommand.buildDirectory(join('videos', videoUUID + '-0.mp4')), |
85 | buildServerDirectory(servers[0], join('streaming-playlists', 'hls', videoUUID, videoUUID + '-0-fragmented.mp4')) | 84 | servers[0].serversCommand.buildDirectory(join('streaming-playlists', 'hls', videoUUID, videoUUID + '-0-fragmented.mp4')) |
86 | ] | 85 | ] |
87 | 86 | ||
88 | for (const path of paths) { | 87 | for (const path of paths) { |
diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts index 1b6f0f48a..1905aac83 100644 --- a/server/tests/api/videos/multiple-servers.ts +++ b/server/tests/api/videos/multiple-servers.ts | |||
@@ -689,8 +689,8 @@ describe('Test multiple servers', function () { | |||
689 | 689 | ||
690 | it('Should not have files of videos 3 and 3-2 on each server', async function () { | 690 | it('Should not have files of videos 3 and 3-2 on each server', async function () { |
691 | for (const server of servers) { | 691 | for (const server of servers) { |
692 | await checkVideoFilesWereRemoved(toRemove[0].uuid, server.internalServerNumber) | 692 | await checkVideoFilesWereRemoved(toRemove[0].uuid, server) |
693 | await checkVideoFilesWereRemoved(toRemove[1].uuid, server.internalServerNumber) | 693 | await checkVideoFilesWereRemoved(toRemove[1].uuid, server) |
694 | } | 694 | } |
695 | }) | 695 | }) |
696 | 696 | ||
diff --git a/server/tests/api/videos/resumable-upload.ts b/server/tests/api/videos/resumable-upload.ts index 6c01c7e78..5845efc86 100644 --- a/server/tests/api/videos/resumable-upload.ts +++ b/server/tests/api/videos/resumable-upload.ts | |||
@@ -7,7 +7,6 @@ import { join } from 'path' | |||
7 | import { HttpStatusCode } from '@shared/core-utils' | 7 | import { HttpStatusCode } from '@shared/core-utils' |
8 | import { | 8 | import { |
9 | buildAbsoluteFixturePath, | 9 | buildAbsoluteFixturePath, |
10 | buildServerDirectory, | ||
11 | cleanupTests, | 10 | cleanupTests, |
12 | flushAndRunServer, | 11 | flushAndRunServer, |
13 | getMyUserInformation, | 12 | getMyUserInformation, |
@@ -82,7 +81,7 @@ describe('Test resumable upload', function () { | |||
82 | const uploadId = uploadIdArg.replace(/^upload_id=/, '') | 81 | const uploadId = uploadIdArg.replace(/^upload_id=/, '') |
83 | 82 | ||
84 | const subPath = join('tmp', 'resumable-uploads', uploadId) | 83 | const subPath = join('tmp', 'resumable-uploads', uploadId) |
85 | const filePath = buildServerDirectory(server, subPath) | 84 | const filePath = server.serversCommand.buildDirectory(subPath) |
86 | const exists = await pathExists(filePath) | 85 | const exists = await pathExists(filePath) |
87 | 86 | ||
88 | if (expectedSize === null) { | 87 | if (expectedSize === null) { |
@@ -97,7 +96,7 @@ describe('Test resumable upload', function () { | |||
97 | 96 | ||
98 | async function countResumableUploads () { | 97 | async function countResumableUploads () { |
99 | const subPath = join('tmp', 'resumable-uploads') | 98 | const subPath = join('tmp', 'resumable-uploads') |
100 | const filePath = buildServerDirectory(server, subPath) | 99 | const filePath = server.serversCommand.buildDirectory(subPath) |
101 | 100 | ||
102 | const files = await readdir(filePath) | 101 | const files = await readdir(filePath) |
103 | return files.length | 102 | return files.length |
diff --git a/server/tests/api/videos/single-server.ts b/server/tests/api/videos/single-server.ts index 1058a1e9c..af1703e02 100644 --- a/server/tests/api/videos/single-server.ts +++ b/server/tests/api/videos/single-server.ts | |||
@@ -230,7 +230,7 @@ describe('Test a single server', function () { | |||
230 | it('Should remove the video', async function () { | 230 | it('Should remove the video', async function () { |
231 | await removeVideo(server.url, server.accessToken, videoId) | 231 | await removeVideo(server.url, server.accessToken, videoId) |
232 | 232 | ||
233 | await checkVideoFilesWereRemoved(videoUUID, 1) | 233 | await checkVideoFilesWereRemoved(videoUUID, server) |
234 | }) | 234 | }) |
235 | 235 | ||
236 | it('Should not have videos', async function () { | 236 | it('Should not have videos', async function () { |
diff --git a/server/tests/api/videos/video-captions.ts b/server/tests/api/videos/video-captions.ts index 83ee809b8..d4a5385ab 100644 --- a/server/tests/api/videos/video-captions.ts +++ b/server/tests/api/videos/video-captions.ts | |||
@@ -182,7 +182,7 @@ describe('Test video captions', function () { | |||
182 | it('Should remove the video, and thus all video captions', async function () { | 182 | it('Should remove the video, and thus all video captions', async function () { |
183 | await removeVideo(servers[0].url, servers[0].accessToken, videoUUID) | 183 | await removeVideo(servers[0].url, servers[0].accessToken, videoUUID) |
184 | 184 | ||
185 | await checkVideoFilesWereRemoved(videoUUID, 1) | 185 | await checkVideoFilesWereRemoved(videoUUID, servers[0]) |
186 | }) | 186 | }) |
187 | 187 | ||
188 | after(async function () { | 188 | after(async function () { |
diff --git a/server/tests/api/videos/video-imports.ts b/server/tests/api/videos/video-imports.ts index 4f9ecbe8e..f6ae8cab1 100644 --- a/server/tests/api/videos/video-imports.ts +++ b/server/tests/api/videos/video-imports.ts | |||
@@ -11,7 +11,6 @@ import { | |||
11 | getMyVideos, | 11 | getMyVideos, |
12 | getVideo, | 12 | getVideo, |
13 | getVideosList, | 13 | getVideosList, |
14 | immutableAssign, | ||
15 | ImportsCommand, | 14 | ImportsCommand, |
16 | ServerInfo, | 15 | ServerInfo, |
17 | setAccessTokensToServers, | 16 | setAccessTokensToServers, |
@@ -119,7 +118,7 @@ describe('Test video imports', function () { | |||
119 | } | 118 | } |
120 | 119 | ||
121 | { | 120 | { |
122 | const attributes = immutableAssign(baseAttributes, { targetUrl: ImportsCommand.getYoutubeVideoUrl() }) | 121 | const attributes = { ...baseAttributes, targetUrl: ImportsCommand.getYoutubeVideoUrl() } |
123 | const { video } = await servers[0].importsCommand.importVideo({ attributes }) | 122 | const { video } = await servers[0].importsCommand.importVideo({ attributes }) |
124 | expect(video.name).to.equal('small video - youtube') | 123 | expect(video.name).to.equal('small video - youtube') |
125 | 124 | ||
@@ -169,21 +168,23 @@ Ajouter un sous-titre est vraiment facile`) | |||
169 | } | 168 | } |
170 | 169 | ||
171 | { | 170 | { |
172 | const attributes = immutableAssign(baseAttributes, { | 171 | const attributes = { |
172 | ...baseAttributes, | ||
173 | magnetUri: ImportsCommand.getMagnetURI(), | 173 | magnetUri: ImportsCommand.getMagnetURI(), |
174 | description: 'this is a super torrent description', | 174 | description: 'this is a super torrent description', |
175 | tags: [ 'tag_torrent1', 'tag_torrent2' ] | 175 | tags: [ 'tag_torrent1', 'tag_torrent2' ] |
176 | }) | 176 | } |
177 | const { video } = await servers[0].importsCommand.importVideo({ attributes }) | 177 | const { video } = await servers[0].importsCommand.importVideo({ attributes }) |
178 | expect(video.name).to.equal('super peertube2 video') | 178 | expect(video.name).to.equal('super peertube2 video') |
179 | } | 179 | } |
180 | 180 | ||
181 | { | 181 | { |
182 | const attributes = immutableAssign(baseAttributes, { | 182 | const attributes = { |
183 | ...baseAttributes, | ||
183 | torrentfile: 'video-720p.torrent' as any, | 184 | torrentfile: 'video-720p.torrent' as any, |
184 | description: 'this is a super torrent description', | 185 | description: 'this is a super torrent description', |
185 | tags: [ 'tag_torrent1', 'tag_torrent2' ] | 186 | tags: [ 'tag_torrent1', 'tag_torrent2' ] |
186 | }) | 187 | } |
187 | const { video } = await servers[0].importsCommand.importVideo({ attributes }) | 188 | const { video } = await servers[0].importsCommand.importVideo({ attributes }) |
188 | expect(video.name).to.equal('你好 世界 720p.mp4') | 189 | expect(video.name).to.equal('你好 世界 720p.mp4') |
189 | } | 190 | } |
diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts index e74fb5bef..f16b22bae 100644 --- a/server/tests/api/videos/video-transcoder.ts +++ b/server/tests/api/videos/video-transcoder.ts | |||
@@ -9,14 +9,12 @@ import { VIDEO_TRANSCODING_FPS } from '../../../../server/initializers/constants | |||
9 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' | 9 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' |
10 | import { | 10 | import { |
11 | buildAbsoluteFixturePath, | 11 | buildAbsoluteFixturePath, |
12 | buildServerDirectory, | ||
13 | cleanupTests, | 12 | cleanupTests, |
14 | doubleFollow, | 13 | doubleFollow, |
15 | flushAndRunMultipleServers, | 14 | flushAndRunMultipleServers, |
16 | generateHighBitrateVideo, | 15 | generateHighBitrateVideo, |
17 | generateVideoWithFramerate, | 16 | generateVideoWithFramerate, |
18 | getMyVideos, | 17 | getMyVideos, |
19 | getServerFileSize, | ||
20 | getVideo, | 18 | getVideo, |
21 | getVideoFileMetadataUrl, | 19 | getVideoFileMetadataUrl, |
22 | getVideosList, | 20 | getVideosList, |
@@ -285,7 +283,7 @@ describe('Test video transcoding', function () { | |||
285 | 283 | ||
286 | expect(videoDetails.files).to.have.lengthOf(4) | 284 | expect(videoDetails.files).to.have.lengthOf(4) |
287 | 285 | ||
288 | const path = buildServerDirectory(servers[1], join('videos', video.uuid + '-240.mp4')) | 286 | const path = servers[1].serversCommand.buildDirectory(join('videos', video.uuid + '-240.mp4')) |
289 | const probe = await getAudioStream(path) | 287 | const probe = await getAudioStream(path) |
290 | 288 | ||
291 | if (probe.audioStream) { | 289 | if (probe.audioStream) { |
@@ -316,7 +314,7 @@ describe('Test video transcoding', function () { | |||
316 | const videoDetails: VideoDetails = res2.body | 314 | const videoDetails: VideoDetails = res2.body |
317 | 315 | ||
318 | expect(videoDetails.files).to.have.lengthOf(4) | 316 | expect(videoDetails.files).to.have.lengthOf(4) |
319 | const path = buildServerDirectory(servers[1], join('videos', video.uuid + '-240.mp4')) | 317 | const path = servers[1].serversCommand.buildDirectory(join('videos', video.uuid + '-240.mp4')) |
320 | const probe = await getAudioStream(path) | 318 | const probe = await getAudioStream(path) |
321 | expect(probe).to.not.have.property('audioStream') | 319 | expect(probe).to.not.have.property('audioStream') |
322 | } | 320 | } |
@@ -344,7 +342,7 @@ describe('Test video transcoding', function () { | |||
344 | 342 | ||
345 | const fixturePath = buildAbsoluteFixturePath(videoAttributes.fixture) | 343 | const fixturePath = buildAbsoluteFixturePath(videoAttributes.fixture) |
346 | const fixtureVideoProbe = await getAudioStream(fixturePath) | 344 | const fixtureVideoProbe = await getAudioStream(fixturePath) |
347 | const path = buildServerDirectory(servers[1], join('videos', video.uuid + '-240.mp4')) | 345 | const path = servers[1].serversCommand.buildDirectory(join('videos', video.uuid + '-240.mp4')) |
348 | 346 | ||
349 | const videoProbe = await getAudioStream(path) | 347 | const videoProbe = await getAudioStream(path) |
350 | 348 | ||
@@ -506,13 +504,13 @@ describe('Test video transcoding', function () { | |||
506 | expect(videoDetails.files[3].fps).to.be.below(31) | 504 | expect(videoDetails.files[3].fps).to.be.below(31) |
507 | 505 | ||
508 | for (const resolution of [ '240', '360', '480' ]) { | 506 | for (const resolution of [ '240', '360', '480' ]) { |
509 | const path = buildServerDirectory(servers[1], join('videos', video.uuid + '-' + resolution + '.mp4')) | 507 | const path = servers[1].serversCommand.buildDirectory(join('videos', video.uuid + '-' + resolution + '.mp4')) |
510 | const fps = await getVideoFileFPS(path) | 508 | const fps = await getVideoFileFPS(path) |
511 | 509 | ||
512 | expect(fps).to.be.below(31) | 510 | expect(fps).to.be.below(31) |
513 | } | 511 | } |
514 | 512 | ||
515 | const path = buildServerDirectory(servers[1], join('videos', video.uuid + '-720.mp4')) | 513 | const path = servers[1].serversCommand.buildDirectory(join('videos', video.uuid + '-720.mp4')) |
516 | const fps = await getVideoFileFPS(path) | 514 | const fps = await getVideoFileFPS(path) |
517 | 515 | ||
518 | expect(fps).to.be.above(58).and.below(62) | 516 | expect(fps).to.be.above(58).and.below(62) |
@@ -547,13 +545,13 @@ describe('Test video transcoding', function () { | |||
547 | const video = res.body.data.find(v => v.name === videoAttributes.name) | 545 | const video = res.body.data.find(v => v.name === videoAttributes.name) |
548 | 546 | ||
549 | { | 547 | { |
550 | const path = buildServerDirectory(servers[1], join('videos', video.uuid + '-240.mp4')) | 548 | const path = servers[1].serversCommand.buildDirectory(join('videos', video.uuid + '-240.mp4')) |
551 | const fps = await getVideoFileFPS(path) | 549 | const fps = await getVideoFileFPS(path) |
552 | expect(fps).to.be.equal(25) | 550 | expect(fps).to.be.equal(25) |
553 | } | 551 | } |
554 | 552 | ||
555 | { | 553 | { |
556 | const path = buildServerDirectory(servers[1], join('videos', video.uuid + '-720.mp4')) | 554 | const path = servers[1].serversCommand.buildDirectory(join('videos', video.uuid + '-720.mp4')) |
557 | const fps = await getVideoFileFPS(path) | 555 | const fps = await getVideoFileFPS(path) |
558 | expect(fps).to.be.equal(59) | 556 | expect(fps).to.be.equal(59) |
559 | } | 557 | } |
@@ -590,7 +588,7 @@ describe('Test video transcoding', function () { | |||
590 | const video = res.body.data.find(v => v.name === videoAttributes.name) | 588 | const video = res.body.data.find(v => v.name === videoAttributes.name) |
591 | 589 | ||
592 | for (const resolution of [ '240', '360', '480', '720', '1080' ]) { | 590 | for (const resolution of [ '240', '360', '480', '720', '1080' ]) { |
593 | const path = buildServerDirectory(servers[1], join('videos', video.uuid + '-' + resolution + '.mp4')) | 591 | const path = servers[1].serversCommand.buildDirectory(join('videos', video.uuid + '-' + resolution + '.mp4')) |
594 | 592 | ||
595 | const bitrate = await getVideoFileBitrate(path) | 593 | const bitrate = await getVideoFileBitrate(path) |
596 | const fps = await getVideoFileFPS(path) | 594 | const fps = await getVideoFileFPS(path) |
@@ -636,7 +634,7 @@ describe('Test video transcoding', function () { | |||
636 | const resolutions = [ 240, 360, 480, 720, 1080 ] | 634 | const resolutions = [ 240, 360, 480, 720, 1080 ] |
637 | for (const r of resolutions) { | 635 | for (const r of resolutions) { |
638 | const path = `videos/${videoUUID}-${r}.mp4` | 636 | const path = `videos/${videoUUID}-${r}.mp4` |
639 | const size = await getServerFileSize(servers[1], path) | 637 | const size = await servers[1].serversCommand.getServerFileSize(path) |
640 | expect(size, `${path} not below ${60_000}`).to.be.below(60_000) | 638 | expect(size, `${path} not below ${60_000}`).to.be.below(60_000) |
641 | } | 639 | } |
642 | }) | 640 | }) |
@@ -651,7 +649,7 @@ describe('Test video transcoding', function () { | |||
651 | await waitJobs(servers) | 649 | await waitJobs(servers) |
652 | 650 | ||
653 | { | 651 | { |
654 | const path = buildServerDirectory(servers[1], join('videos', videoUUID + '-240.mp4')) | 652 | const path = servers[1].serversCommand.buildDirectory(join('videos', videoUUID + '-240.mp4')) |
655 | const metadata = await getMetadataFromFile(path) | 653 | const metadata = await getMetadataFromFile(path) |
656 | 654 | ||
657 | // expected format properties | 655 | // expected format properties |