diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/tests/api/users/users.ts | 236 | ||||
-rw-r--r-- | server/tests/api/videos/services.ts | 6 | ||||
-rw-r--r-- | server/tests/api/videos/video-transcoder.ts | 20 | ||||
-rw-r--r-- | server/tests/real-world/real-world.ts | 743 |
4 files changed, 437 insertions, 568 deletions
diff --git a/server/tests/api/users/users.ts b/server/tests/api/users/users.ts index a13807b5c..19549acdd 100644 --- a/server/tests/api/users/users.ts +++ b/server/tests/api/users/users.ts | |||
@@ -40,36 +40,28 @@ describe('Test users', function () { | |||
40 | const client = { id: 'client', secret: server.client.secret } | 40 | const client = { id: 'client', secret: server.client.secret } |
41 | const res = await login(server.url, client, server.user, 400) | 41 | const res = await login(server.url, client, server.user, 400) |
42 | 42 | ||
43 | expect(res.body.error) | 43 | expect(res.body.error).to.equal('Authentication failed.') |
44 | .to | ||
45 | .equal('Authentication failed.') | ||
46 | }) | 44 | }) |
47 | 45 | ||
48 | it('Should not login with an invalid client secret', async function () { | 46 | it('Should not login with an invalid client secret', async function () { |
49 | const client = { id: server.client.id, secret: 'coucou' } | 47 | const client = { id: server.client.id, secret: 'coucou' } |
50 | const res = await login(server.url, client, server.user, 400) | 48 | const res = await login(server.url, client, server.user, 400) |
51 | 49 | ||
52 | expect(res.body.error) | 50 | expect(res.body.error).to.equal('Authentication failed.') |
53 | .to | ||
54 | .equal('Authentication failed.') | ||
55 | }) | 51 | }) |
56 | 52 | ||
57 | it('Should not login with an invalid username', async function () { | 53 | it('Should not login with an invalid username', async function () { |
58 | const user = { username: 'captain crochet', password: server.user.password } | 54 | const user = { username: 'captain crochet', password: server.user.password } |
59 | const res = await login(server.url, server.client, user, 400) | 55 | const res = await login(server.url, server.client, user, 400) |
60 | 56 | ||
61 | expect(res.body.error) | 57 | expect(res.body.error).to.equal('Authentication failed.') |
62 | .to | ||
63 | .equal('Authentication failed.') | ||
64 | }) | 58 | }) |
65 | 59 | ||
66 | it('Should not login with an invalid password', async function () { | 60 | it('Should not login with an invalid password', async function () { |
67 | const user = { username: server.user.username, password: 'mew_three' } | 61 | const user = { username: server.user.username, password: 'mew_three' } |
68 | const res = await login(server.url, server.client, user, 400) | 62 | const res = await login(server.url, server.client, user, 400) |
69 | 63 | ||
70 | expect(res.body.error) | 64 | expect(res.body.error).to.equal('Authentication failed.') |
71 | .to | ||
72 | .equal('Authentication failed.') | ||
73 | }) | 65 | }) |
74 | 66 | ||
75 | it('Should not be able to upload a video', async function () { | 67 | it('Should not be able to upload a video', async function () { |
@@ -98,9 +90,7 @@ describe('Test users', function () { | |||
98 | const res = await getVideosList(server.url) | 90 | const res = await getVideosList(server.url) |
99 | const video = res.body.data[ 0 ] | 91 | const video = res.body.data[ 0 ] |
100 | 92 | ||
101 | expect(video.accountName) | 93 | expect(video.accountName).to.equal('root') |
102 | .to | ||
103 | .equal('root') | ||
104 | videoId = video.id | 94 | videoId = video.id |
105 | }) | 95 | }) |
106 | 96 | ||
@@ -114,12 +104,8 @@ describe('Test users', function () { | |||
114 | const res = await getMyUserVideoRating(server.url, accessToken, videoId) | 104 | const res = await getMyUserVideoRating(server.url, accessToken, videoId) |
115 | const rating = res.body | 105 | const rating = res.body |
116 | 106 | ||
117 | expect(rating.videoId) | 107 | expect(rating.videoId).to.equal(videoId) |
118 | .to | 108 | expect(rating.rating).to.equal('like') |
119 | .equal(videoId) | ||
120 | expect(rating.rating) | ||
121 | .to | ||
122 | .equal('like') | ||
123 | }) | 109 | }) |
124 | 110 | ||
125 | it('Should not be able to remove the video with an incorrect token', async function () { | 111 | it('Should not be able to remove the video with an incorrect token', async function () { |
@@ -181,23 +167,12 @@ describe('Test users', function () { | |||
181 | const res = await getMyUserInformation(server.url, accessTokenUser) | 167 | const res = await getMyUserInformation(server.url, accessTokenUser) |
182 | const user = res.body | 168 | const user = res.body |
183 | 169 | ||
184 | expect(user.username) | 170 | expect(user.username).to.equal('user_1') |
185 | .to | 171 | expect(user.email).to.equal('user_1@example.com') |
186 | .equal('user_1') | ||
187 | expect(user.email) | ||
188 | .to | ||
189 | .equal('user_1@example.com') | ||
190 | expect(user.displayNSFW).to.be.false | 172 | expect(user.displayNSFW).to.be.false |
191 | expect(user.videoQuota) | 173 | expect(user.videoQuota).to.equal(2 * 1024 * 1024) |
192 | .to | 174 | expect(user.roleLabel).to.equal('User') |
193 | .equal(2 * 1024 * 1024) | 175 | expect(user.id).to.be.a('number') |
194 | expect(user.roleLabel) | ||
195 | .to | ||
196 | .equal('User') | ||
197 | expect(user.id) | ||
198 | .to | ||
199 | .be | ||
200 | .a('number') | ||
201 | }) | 176 | }) |
202 | 177 | ||
203 | it('Should be able to upload a video with this user', async function () { | 178 | it('Should be able to upload a video with this user', async function () { |
@@ -211,19 +186,12 @@ describe('Test users', function () { | |||
211 | 186 | ||
212 | it('Should be able to list my videos', async function () { | 187 | it('Should be able to list my videos', async function () { |
213 | const res = await getMyVideos(server.url, accessTokenUser, 0, 5) | 188 | const res = await getMyVideos(server.url, accessTokenUser, 0, 5) |
214 | expect(res.body.total) | 189 | expect(res.body.total).to.equal(1) |
215 | .to | ||
216 | .equal(1) | ||
217 | 190 | ||
218 | const videos = res.body.data | 191 | const videos = res.body.data |
219 | expect(videos) | 192 | expect(videos).to.have.lengthOf(1) |
220 | .to | ||
221 | .have | ||
222 | .lengthOf(1) | ||
223 | 193 | ||
224 | expect(videos[ 0 ].name) | 194 | expect(videos[ 0 ].name).to.equal('super user video') |
225 | .to | ||
226 | .equal('super user video') | ||
227 | }) | 195 | }) |
228 | 196 | ||
229 | it('Should list all the users', async function () { | 197 | it('Should list all the users', async function () { |
@@ -232,33 +200,18 @@ describe('Test users', function () { | |||
232 | const total = result.total | 200 | const total = result.total |
233 | const users = result.data | 201 | const users = result.data |
234 | 202 | ||
235 | expect(total) | 203 | expect(total).to.equal(2) |
236 | .to | 204 | expect(users).to.be.an('array') |
237 | .equal(2) | 205 | expect(users.length).to.equal(2) |
238 | expect(users) | ||
239 | .to | ||
240 | .be | ||
241 | .an('array') | ||
242 | expect(users.length) | ||
243 | .to | ||
244 | .equal(2) | ||
245 | 206 | ||
246 | const user = users[ 0 ] | 207 | const user = users[ 0 ] |
247 | expect(user.username) | 208 | expect(user.username).to.equal('user_1') |
248 | .to | 209 | expect(user.email).to.equal('user_1@example.com') |
249 | .equal('user_1') | ||
250 | expect(user.email) | ||
251 | .to | ||
252 | .equal('user_1@example.com') | ||
253 | expect(user.displayNSFW).to.be.false | 210 | expect(user.displayNSFW).to.be.false |
254 | 211 | ||
255 | const rootUser = users[ 1 ] | 212 | const rootUser = users[ 1 ] |
256 | expect(rootUser.username) | 213 | expect(rootUser.username).to.equal('root') |
257 | .to | 214 | expect(rootUser.email).to.equal('admin1@example.com') |
258 | .equal('root') | ||
259 | expect(rootUser.email) | ||
260 | .to | ||
261 | .equal('admin1@example.com') | ||
262 | expect(rootUser.displayNSFW).to.be.false | 215 | expect(rootUser.displayNSFW).to.be.false |
263 | 216 | ||
264 | userId = user.id | 217 | userId = user.id |
@@ -271,23 +224,13 @@ describe('Test users', function () { | |||
271 | const total = result.total | 224 | const total = result.total |
272 | const users = result.data | 225 | const users = result.data |
273 | 226 | ||
274 | expect(total) | 227 | expect(total).to.equal(2) |
275 | .to | 228 | expect(users.length).to.equal(1) |
276 | .equal(2) | ||
277 | expect(users.length) | ||
278 | .to | ||
279 | .equal(1) | ||
280 | 229 | ||
281 | const user = users[ 0 ] | 230 | const user = users[ 0 ] |
282 | expect(user.username) | 231 | expect(user.username).to.equal('root') |
283 | .to | 232 | expect(user.email).to.equal('admin1@example.com') |
284 | .equal('root') | 233 | expect(user.roleLabel).to.equal('Administrator') |
285 | expect(user.email) | ||
286 | .to | ||
287 | .equal('admin1@example.com') | ||
288 | expect(user.roleLabel) | ||
289 | .to | ||
290 | .equal('Administrator') | ||
291 | expect(user.displayNSFW).to.be.false | 234 | expect(user.displayNSFW).to.be.false |
292 | }) | 235 | }) |
293 | 236 | ||
@@ -297,20 +240,12 @@ describe('Test users', function () { | |||
297 | const total = result.total | 240 | const total = result.total |
298 | const users = result.data | 241 | const users = result.data |
299 | 242 | ||
300 | expect(total) | 243 | expect(total).to.equal(2) |
301 | .to | 244 | expect(users.length).to.equal(1) |
302 | .equal(2) | ||
303 | expect(users.length) | ||
304 | .to | ||
305 | .equal(1) | ||
306 | 245 | ||
307 | const user = users[ 0 ] | 246 | const user = users[ 0 ] |
308 | expect(user.username) | 247 | expect(user.username).to.equal('user_1') |
309 | .to | 248 | expect(user.email).to.equal('user_1@example.com') |
310 | .equal('user_1') | ||
311 | expect(user.email) | ||
312 | .to | ||
313 | .equal('user_1@example.com') | ||
314 | expect(user.displayNSFW).to.be.false | 249 | expect(user.displayNSFW).to.be.false |
315 | }) | 250 | }) |
316 | 251 | ||
@@ -320,20 +255,12 @@ describe('Test users', function () { | |||
320 | const total = result.total | 255 | const total = result.total |
321 | const users = result.data | 256 | const users = result.data |
322 | 257 | ||
323 | expect(total) | 258 | expect(total).to.equal(2) |
324 | .to | 259 | expect(users.length).to.equal(1) |
325 | .equal(2) | ||
326 | expect(users.length) | ||
327 | .to | ||
328 | .equal(1) | ||
329 | 260 | ||
330 | const user = users[ 0 ] | 261 | const user = users[ 0 ] |
331 | expect(user.username) | 262 | expect(user.username).to.equal('user_1') |
332 | .to | 263 | expect(user.email).to.equal('user_1@example.com') |
333 | .equal('user_1') | ||
334 | expect(user.email) | ||
335 | .to | ||
336 | .equal('user_1@example.com') | ||
337 | expect(user.displayNSFW).to.be.false | 264 | expect(user.displayNSFW).to.be.false |
338 | }) | 265 | }) |
339 | 266 | ||
@@ -343,27 +270,15 @@ describe('Test users', function () { | |||
343 | const total = result.total | 270 | const total = result.total |
344 | const users = result.data | 271 | const users = result.data |
345 | 272 | ||
346 | expect(total) | 273 | expect(total).to.equal(2) |
347 | .to | 274 | expect(users.length).to.equal(2) |
348 | .equal(2) | 275 | |
349 | expect(users.length) | 276 | expect(users[ 0 ].username).to.equal('root') |
350 | .to | 277 | expect(users[ 0 ].email).to.equal('admin1@example.com') |
351 | .equal(2) | ||
352 | |||
353 | expect(users[ 0 ].username) | ||
354 | .to | ||
355 | .equal('root') | ||
356 | expect(users[ 0 ].email) | ||
357 | .to | ||
358 | .equal('admin1@example.com') | ||
359 | expect(users[ 0 ].displayNSFW).to.be.false | 278 | expect(users[ 0 ].displayNSFW).to.be.false |
360 | 279 | ||
361 | expect(users[ 1 ].username) | 280 | expect(users[ 1 ].username).to.equal('user_1') |
362 | .to | 281 | expect(users[ 1 ].email).to.equal('user_1@example.com') |
363 | .equal('user_1') | ||
364 | expect(users[ 1 ].email) | ||
365 | .to | ||
366 | .equal('user_1@example.com') | ||
367 | expect(users[ 1 ].displayNSFW).to.be.false | 282 | expect(users[ 1 ].displayNSFW).to.be.false |
368 | }) | 283 | }) |
369 | 284 | ||
@@ -388,20 +303,11 @@ describe('Test users', function () { | |||
388 | const res = await getMyUserInformation(server.url, accessTokenUser) | 303 | const res = await getMyUserInformation(server.url, accessTokenUser) |
389 | const user = res.body | 304 | const user = res.body |
390 | 305 | ||
391 | expect(user.username) | 306 | expect(user.username).to.equal('user_1') |
392 | .to | 307 | expect(user.email).to.equal('user_1@example.com') |
393 | .equal('user_1') | ||
394 | expect(user.email) | ||
395 | .to | ||
396 | .equal('user_1@example.com') | ||
397 | expect(user.displayNSFW).to.be.ok | 308 | expect(user.displayNSFW).to.be.ok |
398 | expect(user.videoQuota) | 309 | expect(user.videoQuota).to.equal(2 * 1024 * 1024) |
399 | .to | 310 | expect(user.id).to.be.a('number') |
400 | .equal(2 * 1024 * 1024) | ||
401 | expect(user.id) | ||
402 | .to | ||
403 | .be | ||
404 | .a('number') | ||
405 | }) | 311 | }) |
406 | 312 | ||
407 | it('Should be able to change the autoPlayVideo attribute', async function () { | 313 | it('Should be able to change the autoPlayVideo attribute', async function () { |
@@ -427,20 +333,11 @@ describe('Test users', function () { | |||
427 | const res = await getMyUserInformation(server.url, accessTokenUser) | 333 | const res = await getMyUserInformation(server.url, accessTokenUser) |
428 | const user = res.body | 334 | const user = res.body |
429 | 335 | ||
430 | expect(user.username) | 336 | expect(user.username).to.equal('user_1') |
431 | .to | 337 | expect(user.email).to.equal('updated@example.com') |
432 | .equal('user_1') | ||
433 | expect(user.email) | ||
434 | .to | ||
435 | .equal('updated@example.com') | ||
436 | expect(user.displayNSFW).to.be.ok | 338 | expect(user.displayNSFW).to.be.ok |
437 | expect(user.videoQuota) | 339 | expect(user.videoQuota).to.equal(2 * 1024 * 1024) |
438 | .to | 340 | expect(user.id).to.be.a('number') |
439 | .equal(2 * 1024 * 1024) | ||
440 | expect(user.id) | ||
441 | .to | ||
442 | .be | ||
443 | .a('number') | ||
444 | }) | 341 | }) |
445 | 342 | ||
446 | it('Should be able to update another user', async function () { | 343 | it('Should be able to update another user', async function () { |
@@ -456,23 +353,12 @@ describe('Test users', function () { | |||
456 | const res = await getUserInformation(server.url, accessToken, userId) | 353 | const res = await getUserInformation(server.url, accessToken, userId) |
457 | const user = res.body | 354 | const user = res.body |
458 | 355 | ||
459 | expect(user.username) | 356 | expect(user.username).to.equal('user_1') |
460 | .to | 357 | expect(user.email).to.equal('updated2@example.com') |
461 | .equal('user_1') | ||
462 | expect(user.email) | ||
463 | .to | ||
464 | .equal('updated2@example.com') | ||
465 | expect(user.displayNSFW).to.be.ok | 358 | expect(user.displayNSFW).to.be.ok |
466 | expect(user.videoQuota) | 359 | expect(user.videoQuota).to.equal(42) |
467 | .to | 360 | expect(user.roleLabel).to.equal('Moderator') |
468 | .equal(42) | 361 | expect(user.id).to.be.a('number') |
469 | expect(user.roleLabel) | ||
470 | .to | ||
471 | .equal('Moderator') | ||
472 | expect(user.id) | ||
473 | .to | ||
474 | .be | ||
475 | .a('number') | ||
476 | }) | 362 | }) |
477 | 363 | ||
478 | it('Should not be able to delete a user by a moderator', async function () { | 364 | it('Should not be able to delete a user by a moderator', async function () { |
@@ -495,14 +381,10 @@ describe('Test users', function () { | |||
495 | it('Should not have videos of this user', async function () { | 381 | it('Should not have videos of this user', async function () { |
496 | const res = await getVideosList(server.url) | 382 | const res = await getVideosList(server.url) |
497 | 383 | ||
498 | expect(res.body.total) | 384 | expect(res.body.total).to.equal(1) |
499 | .to | ||
500 | .equal(1) | ||
501 | 385 | ||
502 | const video = res.body.data[ 0 ] | 386 | const video = res.body.data[ 0 ] |
503 | expect(video.accountName) | 387 | expect(video.accountName).to.equal('root') |
504 | .to | ||
505 | .equal('root') | ||
506 | }) | 388 | }) |
507 | 389 | ||
508 | it('Should register a new user', async function () { | 390 | it('Should register a new user', async function () { |
@@ -522,9 +404,7 @@ describe('Test users', function () { | |||
522 | const res = await getMyUserInformation(server.url, accessToken) | 404 | const res = await getMyUserInformation(server.url, accessToken) |
523 | const user = res.body | 405 | const user = res.body |
524 | 406 | ||
525 | expect(user.videoQuota) | 407 | expect(user.videoQuota).to.equal(5 * 1024 * 1024) |
526 | .to | ||
527 | .equal(5 * 1024 * 1024) | ||
528 | }) | 408 | }) |
529 | 409 | ||
530 | after(async function () { | 410 | after(async function () { |
diff --git a/server/tests/api/videos/services.ts b/server/tests/api/videos/services.ts index 1cda464d9..b3167aebc 100644 --- a/server/tests/api/videos/services.ts +++ b/server/tests/api/videos/services.ts | |||
@@ -30,10 +30,8 @@ describe('Test services', function () { | |||
30 | const videoAttributes = { | 30 | const videoAttributes = { |
31 | name: 'my super name' | 31 | name: 'my super name' |
32 | } | 32 | } |
33 | await uploadVideo(server.url, server.accessToken, videoAttributes) | 33 | const res = await uploadVideo(server.url, server.accessToken, videoAttributes) |
34 | 34 | server.video = res.body.video | |
35 | const res = await getVideosList(server.url) | ||
36 | server.video = res.body.data[0] | ||
37 | }) | 35 | }) |
38 | 36 | ||
39 | it('Should have a valid oEmbed response', async function () { | 37 | it('Should have a valid oEmbed response', async function () { |
diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts index 27927a594..9ce2ae190 100644 --- a/server/tests/api/videos/video-transcoder.ts +++ b/server/tests/api/videos/video-transcoder.ts | |||
@@ -1,21 +1,13 @@ | |||
1 | /* tslint:disable:no-unused-expression */ | 1 | /* tslint:disable:no-unused-expression */ |
2 | 2 | ||
3 | import 'mocha' | ||
4 | import * as chai from 'chai' | 3 | import * as chai from 'chai' |
5 | const expect = chai.expect | 4 | import 'mocha' |
6 | |||
7 | import { | 5 | import { |
8 | ServerInfo, | 6 | flushAndRunMultipleServers, flushTests, getVideo, getVideosList, killallServers, ServerInfo, setAccessTokensToServers, uploadVideo, |
9 | flushTests, | 7 | wait, webtorrentAdd |
10 | uploadVideo, | 8 | } from '../../utils' |
11 | getVideosList, | 9 | |
12 | wait, | 10 | const expect = chai.expect |
13 | setAccessTokensToServers, | ||
14 | flushAndRunMultipleServers, | ||
15 | killallServers, | ||
16 | webtorrentAdd, | ||
17 | getVideo | ||
18 | } from '../../utils/index' | ||
19 | 11 | ||
20 | describe('Test video transcoding', function () { | 12 | describe('Test video transcoding', function () { |
21 | let servers: ServerInfo[] = [] | 13 | let servers: ServerInfo[] = [] |
diff --git a/server/tests/real-world/real-world.ts b/server/tests/real-world/real-world.ts index 1afa55267..e41203351 100644 --- a/server/tests/real-world/real-world.ts +++ b/server/tests/real-world/real-world.ts | |||
@@ -1,372 +1,371 @@ | |||
1 | // // /!\ Before imports /!\ | 1 | // /!\ Before imports /!\ |
2 | // process.env.NODE_ENV = 'test' | 2 | process.env.NODE_ENV = 'test' |
3 | // | 3 | |
4 | // import * as program from 'commander' | 4 | import * as program from 'commander' |
5 | // import { Video, VideoFile, VideoRateType } from '../../../shared' | 5 | import { Video, VideoFile, VideoRateType } from '../../../shared' |
6 | // import { | 6 | import { |
7 | // flushAndRunMultipleServers, | 7 | flushAndRunMultipleServers, |
8 | // flushTests, | 8 | flushTests, follow, |
9 | // getAllVideosListBy, | 9 | getVideo, |
10 | // getVideo, | 10 | getVideosList, getVideosListPagination, |
11 | // getVideosList, | 11 | killallServers, |
12 | // killallServers, | 12 | removeVideo, |
13 | // removeVideo, | 13 | ServerInfo as DefaultServerInfo, |
14 | // ServerInfo as DefaultServerInfo, | 14 | setAccessTokensToServers, |
15 | // setAccessTokensToServers, | 15 | updateVideo, |
16 | // updateVideo, | 16 | uploadVideo, viewVideo, |
17 | // uploadVideo, | 17 | wait |
18 | // wait | 18 | } from '../utils' |
19 | // } from '../utils' | 19 | import { getJobsListPaginationAndSort } from '../utils/server/jobs' |
20 | // import { follow } from '../utils/follows' | 20 | |
21 | // | 21 | interface ServerInfo extends DefaultServerInfo { |
22 | // interface ServerInfo extends DefaultServerInfo { | 22 | requestsNumber: number |
23 | // requestsNumber: number | 23 | } |
24 | // } | 24 | |
25 | // | 25 | program |
26 | // program | 26 | .option('-c, --create [weight]', 'Weight for creating videos') |
27 | // .option('-c, --create [weight]', 'Weight for creating videos') | 27 | .option('-r, --remove [weight]', 'Weight for removing videos') |
28 | // .option('-r, --remove [weight]', 'Weight for removing videos') | 28 | .option('-u, --update [weight]', 'Weight for updating videos') |
29 | // .option('-u, --update [weight]', 'Weight for updating videos') | 29 | .option('-v, --view [weight]', 'Weight for viewing videos') |
30 | // .option('-v, --view [weight]', 'Weight for viewing videos') | 30 | .option('-l, --like [weight]', 'Weight for liking videos') |
31 | // .option('-l, --like [weight]', 'Weight for liking videos') | 31 | .option('-s, --dislike [weight]', 'Weight for disliking videos') |
32 | // .option('-s, --dislike [weight]', 'Weight for disliking videos') | 32 | .option('-p, --servers [n]', 'Number of servers to run (3 or 6)', /^3|6$/, 3) |
33 | // .option('-p, --servers [n]', 'Number of servers to run (3 or 6)', /^3|6$/, 3) | 33 | .option('-i, --interval-action [interval]', 'Interval in ms for an action') |
34 | // .option('-i, --interval-action [interval]', 'Interval in ms for an action') | 34 | .option('-I, --interval-integrity [interval]', 'Interval in ms for an integrity check') |
35 | // .option('-I, --interval-integrity [interval]', 'Interval in ms for an integrity check') | 35 | .option('-f, --flush', 'Flush data on exit') |
36 | // .option('-f, --flush', 'Flush datas on exit') | 36 | .option('-d, --difference', 'Display difference if integrity is not okay') |
37 | // .option('-d, --difference', 'Display difference if integrity is not okay') | 37 | .parse(process.argv) |
38 | // .parse(process.argv) | 38 | |
39 | // | 39 | const createWeight = program['create'] !== undefined ? parseInt(program['create'], 10) : 5 |
40 | // const createWeight = program['create'] !== undefined ? parseInt(program['create'], 10) : 5 | 40 | const removeWeight = program['remove'] !== undefined ? parseInt(program['remove'], 10) : 4 |
41 | // const removeWeight = program['remove'] !== undefined ? parseInt(program['remove'], 10) : 4 | 41 | const updateWeight = program['update'] !== undefined ? parseInt(program['update'], 10) : 4 |
42 | // const updateWeight = program['update'] !== undefined ? parseInt(program['update'], 10) : 4 | 42 | const viewWeight = program['view'] !== undefined ? parseInt(program['view'], 10) : 4 |
43 | // const viewWeight = program['view'] !== undefined ? parseInt(program['view'], 10) : 4 | 43 | const likeWeight = program['like'] !== undefined ? parseInt(program['like'], 10) : 4 |
44 | // const likeWeight = program['like'] !== undefined ? parseInt(program['like'], 10) : 4 | 44 | const dislikeWeight = program['dislike'] !== undefined ? parseInt(program['dislike'], 10) : 4 |
45 | // const dislikeWeight = program['dislike'] !== undefined ? parseInt(program['dislike'], 10) : 4 | 45 | const flushAtExit = program['flush'] || false |
46 | // const flushAtExit = program['flush'] || false | 46 | const actionInterval = program['intervalAction'] !== undefined ? parseInt(program['intervalAction'], 10) : 500 |
47 | // const actionInterval = program['intervalAction'] !== undefined ? parseInt(program['intervalAction'], 10) : 500 | 47 | const integrityInterval = program['intervalIntegrity'] !== undefined ? parseInt(program['intervalIntegrity'], 10) : 60000 |
48 | // const integrityInterval = program['intervalIntegrity'] !== undefined ? parseInt(program['intervalIntegrity'], 10) : 60000 | 48 | const displayDiffOnFail = program['difference'] || false |
49 | // const displayDiffOnFail = program['difference'] || false | 49 | |
50 | // | 50 | const numberOfServers = 6 |
51 | // const numberOfServers = 6 | 51 | |
52 | // | 52 | console.log( |
53 | // console.log( | 53 | 'Create weight: %d, update weight: %d, remove weight: %d, view weight: %d, like weight: %d, dislike weight: %d.', |
54 | // 'Create weight: %d, update weight: %d, remove weight: %d, view weight: %d, like weight: %d, dislike weight: %d.', | 54 | createWeight, updateWeight, removeWeight, viewWeight, likeWeight, dislikeWeight |
55 | // createWeight, updateWeight, removeWeight, viewWeight, likeWeight, dislikeWeight | 55 | ) |
56 | // ) | 56 | |
57 | // | 57 | if (flushAtExit) { |
58 | // if (flushAtExit) { | 58 | console.log('Program will flush data on exit.') |
59 | // console.log('Program will flush data on exit.') | 59 | } else { |
60 | // } else { | 60 | console.log('Program will not flush data on exit.') |
61 | // console.log('Program will not flush data on exit.') | 61 | } |
62 | // } | 62 | if (displayDiffOnFail) { |
63 | // if (displayDiffOnFail) { | 63 | console.log('Program will display diff on failure.') |
64 | // console.log('Program will display diff on failure.') | 64 | } else { |
65 | // } else { | 65 | console.log('Program will not display diff on failure') |
66 | // console.log('Program will not display diff on failure') | 66 | } |
67 | // } | 67 | console.log('Interval in ms for each action: %d.', actionInterval) |
68 | // console.log('Interval in ms for each action: %d.', actionInterval) | 68 | console.log('Interval in ms for each integrity check: %d.', integrityInterval) |
69 | // console.log('Interval in ms for each integrity check: %d.', integrityInterval) | 69 | |
70 | // | 70 | console.log('Run servers...') |
71 | // console.log('Run servers...') | 71 | |
72 | // | 72 | start() |
73 | // start() | 73 | |
74 | // | 74 | // ---------------------------------------------------------------------------- |
75 | // // ---------------------------------------------------------------------------- | 75 | |
76 | // | 76 | async function start () { |
77 | // async function start () { | 77 | const servers = await runServers(numberOfServers) |
78 | // const servers = await runServers(numberOfServers) | 78 | |
79 | // | 79 | process.on('exit', async () => { |
80 | // process.on('exit', async () => { | 80 | await exitServers(servers, flushAtExit) |
81 | // await exitServers(servers, flushAtExit) | 81 | |
82 | // | 82 | return |
83 | // return | 83 | }) |
84 | // }) | 84 | process.on('SIGINT', goodbye) |
85 | // process.on('SIGINT', goodbye) | 85 | process.on('SIGTERM', goodbye) |
86 | // process.on('SIGTERM', goodbye) | 86 | |
87 | // | 87 | console.log('Servers ran') |
88 | // console.log('Servers ran') | 88 | initializeRequestsPerServer(servers) |
89 | // initializeRequestsPerServer(servers) | 89 | |
90 | // | 90 | let checking = false |
91 | // let checking = false | 91 | |
92 | // | 92 | setInterval(async () => { |
93 | // setInterval(async () => { | 93 | if (checking === true) return |
94 | // if (checking === true) return | 94 | |
95 | // | 95 | const rand = getRandomInt(0, createWeight + updateWeight + removeWeight + viewWeight + likeWeight + dislikeWeight) |
96 | // const rand = getRandomInt(0, createWeight + updateWeight + removeWeight + viewWeight + likeWeight + dislikeWeight) | 96 | |
97 | // | 97 | const numServer = getRandomNumServer(servers) |
98 | // const numServer = getRandomNumServer(servers) | 98 | servers[numServer].requestsNumber++ |
99 | // servers[numServer].requestsNumber++ | 99 | |
100 | // | 100 | if (rand < createWeight) { |
101 | // if (rand < createWeight) { | 101 | await upload(servers, numServer) |
102 | // await upload(servers, numServer) | 102 | } else if (rand < createWeight + updateWeight) { |
103 | // } else if (rand < createWeight + updateWeight) { | 103 | await update(servers, numServer) |
104 | // await update(servers, numServer) | 104 | } else if (rand < createWeight + updateWeight + removeWeight) { |
105 | // } else if (rand < createWeight + updateWeight + removeWeight) { | 105 | await remove(servers, numServer) |
106 | // await remove(servers, numServer) | 106 | } else if (rand < createWeight + updateWeight + removeWeight + viewWeight) { |
107 | // } else if (rand < createWeight + updateWeight + removeWeight + viewWeight) { | 107 | await view(servers, numServer) |
108 | // await view(servers, numServer) | 108 | } else if (rand < createWeight + updateWeight + removeWeight + viewWeight + likeWeight) { |
109 | // } else if (rand < createWeight + updateWeight + removeWeight + viewWeight + likeWeight) { | 109 | await like(servers, numServer) |
110 | // await like(servers, numServer) | 110 | } else { |
111 | // } else { | 111 | await dislike(servers, numServer) |
112 | // await dislike(servers, numServer) | 112 | } |
113 | // } | 113 | }, actionInterval) |
114 | // }, actionInterval) | 114 | |
115 | // | 115 | // The function will check the consistency between servers (should have the same videos with same attributes...) |
116 | // // The function will check the consistency between servers (should have the same videos with same attributes...) | 116 | setInterval(function () { |
117 | // setInterval(function () { | 117 | if (checking === true) return |
118 | // if (checking === true) return | 118 | |
119 | // | 119 | console.log('Checking integrity...') |
120 | // console.log('Checking integrity...') | 120 | checking = true |
121 | // checking = true | 121 | |
122 | // | 122 | const waitingInterval = setInterval(async () => { |
123 | // const waitingInterval = setInterval(async () => { | 123 | const pendingRequests = await isTherePendingRequests(servers) |
124 | // const pendingRequests = await isTherePendingRequests(servers) | 124 | if (pendingRequests === true) { |
125 | // if (pendingRequests === true) { | 125 | console.log('A server has pending requests, waiting...') |
126 | // console.log('A server has pending requests, waiting...') | 126 | return |
127 | // return | 127 | } |
128 | // } | 128 | |
129 | // | 129 | // Even if there are no pending request, wait some potential processes |
130 | // // Even if there are no pending request, wait some potential processes | 130 | await wait(2000) |
131 | // await wait(2000) | 131 | await checkIntegrity(servers) |
132 | // await checkIntegrity(servers) | 132 | |
133 | // | 133 | initializeRequestsPerServer(servers) |
134 | // initializeRequestsPerServer(servers) | 134 | checking = false |
135 | // checking = false | 135 | clearInterval(waitingInterval) |
136 | // clearInterval(waitingInterval) | 136 | }, 10000) |
137 | // }, 10000) | 137 | }, integrityInterval) |
138 | // }, integrityInterval) | 138 | } |
139 | // } | 139 | |
140 | // | 140 | function initializeRequestsPerServer (servers: ServerInfo[]) { |
141 | // function initializeRequestsPerServer (servers: ServerInfo[]) { | 141 | servers.forEach(server => server.requestsNumber = 0) |
142 | // servers.forEach(server => server.requestsNumber = 0) | 142 | } |
143 | // } | 143 | |
144 | // | 144 | function getRandomInt (min, max) { |
145 | // function getRandomInt (min, max) { | 145 | return Math.floor(Math.random() * (max - min)) + min |
146 | // return Math.floor(Math.random() * (max - min)) + min | 146 | } |
147 | // } | 147 | |
148 | // | 148 | function getRandomNumServer (servers) { |
149 | // function getRandomNumServer (servers) { | 149 | return getRandomInt(0, servers.length) |
150 | // return getRandomInt(0, servers.length) | 150 | } |
151 | // } | 151 | |
152 | // | 152 | async function runServers (numberOfServers: number) { |
153 | // async function runServers (numberOfServers: number) { | 153 | const servers: ServerInfo[] = (await flushAndRunMultipleServers(numberOfServers)) |
154 | // const servers: ServerInfo[] = (await flushAndRunMultipleServers(numberOfServers)) | 154 | .map(s => Object.assign({ requestsNumber: 0 }, s)) |
155 | // .map(s => Object.assign({ requestsNumber: 0 }, s)) | 155 | |
156 | // | 156 | // Get the access tokens |
157 | // // Get the access tokens | 157 | await setAccessTokensToServers(servers) |
158 | // await setAccessTokensToServers(servers) | 158 | |
159 | // | 159 | for (let i = 0; i < numberOfServers; i++) { |
160 | // for (let i = 0; i < numberOfServers; i++) { | 160 | for (let j = 0; j < numberOfServers; j++) { |
161 | // for (let j = 0; j < numberOfServers; j++) { | 161 | if (i === j) continue |
162 | // if (i === j) continue | 162 | |
163 | // | 163 | await follow(servers[i].url, [ servers[j].url ], servers[i].accessToken) |
164 | // await follow(servers[i].url, [ servers[j].url ], servers[i].accessToken) | 164 | } |
165 | // } | 165 | } |
166 | // } | 166 | |
167 | // | 167 | return servers |
168 | // return servers | 168 | } |
169 | // } | 169 | |
170 | // | 170 | async function exitServers (servers: ServerInfo[], flushAtExit: boolean) { |
171 | // async function exitServers (servers: ServerInfo[], flushAtExit: boolean) { | 171 | killallServers(servers) |
172 | // killallServers(servers) | 172 | |
173 | // | 173 | if (flushAtExit) await flushTests() |
174 | // if (flushAtExit) await flushTests() | 174 | } |
175 | // } | 175 | |
176 | // | 176 | function upload (servers: ServerInfo[], numServer: number) { |
177 | // function upload (servers: ServerInfo[], numServer: number) { | 177 | console.log('Uploading video to server ' + numServer) |
178 | // console.log('Uploading video to server ' + numServer) | 178 | |
179 | // | 179 | const videoAttributes = { |
180 | // const videoAttributes = { | 180 | name: Date.now() + ' name', |
181 | // name: Date.now() + ' name', | 181 | category: 4, |
182 | // category: 4, | 182 | nsfw: false, |
183 | // nsfw: false, | 183 | licence: 2, |
184 | // licence: 2, | 184 | language: 1, |
185 | // language: 1, | 185 | description: Date.now() + ' description', |
186 | // description: Date.now() + ' description', | 186 | tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ], |
187 | // tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ], | 187 | fixture: 'video_short1.webm' |
188 | // fixture: 'video_short1.webm' | 188 | } |
189 | // } | 189 | return uploadVideo(servers[numServer].url, servers[numServer].accessToken, videoAttributes) |
190 | // return uploadVideo(servers[numServer].url, servers[numServer].accessToken, videoAttributes) | 190 | } |
191 | // } | 191 | |
192 | // | 192 | async function update (servers: ServerInfo[], numServer: number) { |
193 | // async function update (servers: ServerInfo[], numServer: number) { | 193 | const res = await getVideosList(servers[numServer].url) |
194 | // const res = await getVideosList(servers[numServer].url) | 194 | |
195 | // | 195 | const videos = res.body.data.filter(video => video.isLocal === true) |
196 | // const videos = res.body.data.filter(video => video.isLocal === true) | 196 | if (videos.length === 0) return undefined |
197 | // if (videos.length === 0) return undefined | 197 | |
198 | // | 198 | const toUpdate = videos[getRandomInt(0, videos.length)].id |
199 | // const toUpdate = videos[getRandomInt(0, videos.length)].id | 199 | const attributes = { |
200 | // const attributes = { | 200 | name: Date.now() + ' name', |
201 | // name: Date.now() + ' name', | 201 | description: Date.now() + ' description', |
202 | // description: Date.now() + ' description', | 202 | tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ] |
203 | // tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ] | 203 | } |
204 | // } | 204 | |
205 | // | 205 | console.log('Updating video of server ' + numServer) |
206 | // console.log('Updating video of server ' + numServer) | 206 | |
207 | // | 207 | return updateVideo(servers[numServer].url, servers[numServer].accessToken, toUpdate, attributes) |
208 | // return updateVideo(servers[numServer].url, servers[numServer].accessToken, toUpdate, attributes) | 208 | } |
209 | // } | 209 | |
210 | // | 210 | async function remove (servers: ServerInfo[], numServer: number) { |
211 | // async function remove (servers: ServerInfo[], numServer: number) { | 211 | const res = await getVideosList(servers[numServer].url) |
212 | // const res = await getVideosList(servers[numServer].url) | 212 | const videos = res.body.data.filter(video => video.isLocal === true) |
213 | // const videos = res.body.data.filter(video => video.isLocal === true) | 213 | if (videos.length === 0) return undefined |
214 | // if (videos.length === 0) return undefined | 214 | |
215 | // | 215 | const toRemove = videos[getRandomInt(0, videos.length)].id |
216 | // const toRemove = videos[getRandomInt(0, videos.length)].id | 216 | |
217 | // | 217 | console.log('Removing video from server ' + numServer) |
218 | // console.log('Removing video from server ' + numServer) | 218 | return removeVideo(servers[numServer].url, servers[numServer].accessToken, toRemove) |
219 | // return removeVideo(servers[numServer].url, servers[numServer].accessToken, toRemove) | 219 | } |
220 | // } | 220 | |
221 | // | 221 | async function view (servers: ServerInfo[], numServer: number) { |
222 | // async function view (servers: ServerInfo[], numServer: number) { | 222 | const res = await getVideosList(servers[numServer].url) |
223 | // const res = await getVideosList(servers[numServer].url) | 223 | |
224 | // | 224 | const videos = res.body.data |
225 | // const videos = res.body.data | 225 | if (videos.length === 0) return undefined |
226 | // if (videos.length === 0) return undefined | 226 | |
227 | // | 227 | const toView = videos[getRandomInt(0, videos.length)].id |
228 | // const toView = videos[getRandomInt(0, videos.length)].id | 228 | |
229 | // | 229 | console.log('Viewing video from server ' + numServer) |
230 | // console.log('Viewing video from server ' + numServer) | 230 | return viewVideo(servers[numServer].url, toView) |
231 | // return getVideo(servers[numServer].url, toView) | 231 | } |
232 | // } | 232 | |
233 | // | 233 | function like (servers: ServerInfo[], numServer: number) { |
234 | // function like (servers: ServerInfo[], numServer: number) { | 234 | return rate(servers, numServer, 'like') |
235 | // return rate(servers, numServer, 'like') | 235 | } |
236 | // } | 236 | |
237 | // | 237 | function dislike (servers: ServerInfo[], numServer: number) { |
238 | // function dislike (servers: ServerInfo[], numServer: number) { | 238 | return rate(servers, numServer, 'dislike') |
239 | // return rate(servers, numServer, 'dislike') | 239 | } |
240 | // } | 240 | |
241 | // | 241 | async function rate (servers: ServerInfo[], numServer: number, rating: VideoRateType) { |
242 | // async function rate (servers: ServerInfo[], numServer: number, rating: VideoRateType) { | 242 | const res = await getVideosList(servers[numServer].url) |
243 | // const res = await getVideosList(servers[numServer].url) | 243 | |
244 | // | 244 | const videos = res.body.data |
245 | // const videos = res.body.data | 245 | if (videos.length === 0) return undefined |
246 | // if (videos.length === 0) return undefined | 246 | |
247 | // | 247 | const toRate = videos[getRandomInt(0, videos.length)].id |
248 | // const toRate = videos[getRandomInt(0, videos.length)].id | 248 | |
249 | // | 249 | console.log('Rating (%s) video from server %d', rating, numServer) |
250 | // console.log('Rating (%s) video from server %d', rating, numServer) | 250 | return getVideo(servers[numServer].url, toRate) |
251 | // return getVideo(servers[numServer].url, toRate) | 251 | } |
252 | // } | 252 | |
253 | // | 253 | async function checkIntegrity (servers: ServerInfo[]) { |
254 | // async function checkIntegrity (servers: ServerInfo[]) { | 254 | const videos: Video[][] = [] |
255 | // const videos: Video[][] = [] | 255 | const tasks: Promise<any>[] = [] |
256 | // const tasks: Promise<any>[] = [] | 256 | |
257 | // | 257 | // Fetch all videos and remove some fields that can differ between servers |
258 | // // Fetch all videos and remove some fields that can differ between servers | 258 | for (const server of servers) { |
259 | // for (const server of servers) { | 259 | const p = getVideosListPagination(server.url, 0, 1000000, '-createdAt') |
260 | // const p = getAllVideosListBy(server.url).then(res => videos.push(res.body.data)) | 260 | .then(res => videos.push(res.body.data)) |
261 | // tasks.push(p) | 261 | tasks.push(p) |
262 | // } | 262 | } |
263 | // | 263 | |
264 | // await Promise.all(tasks) | 264 | await Promise.all(tasks) |
265 | // | 265 | |
266 | // let i = 0 | 266 | let i = 0 |
267 | // for (const video of videos) { | 267 | for (const video of videos) { |
268 | // const differences = areDifferences(video, videos[0]) | 268 | const differences = areDifferences(video, videos[0]) |
269 | // if (differences !== undefined) { | 269 | if (differences !== undefined) { |
270 | // console.error('Integrity not ok with server %d!', i + 1) | 270 | console.error('Integrity not ok with server %d!', i + 1) |
271 | // | 271 | |
272 | // if (displayDiffOnFail) { | 272 | if (displayDiffOnFail) { |
273 | // console.log(differences) | 273 | console.log(differences) |
274 | // } | 274 | } |
275 | // | 275 | |
276 | // process.exit(-1) | 276 | process.exit(-1) |
277 | // } | 277 | } |
278 | // | 278 | |
279 | // i++ | 279 | i++ |
280 | // } | 280 | } |
281 | // | 281 | |
282 | // console.log('Integrity ok.') | 282 | console.log('Integrity ok.') |
283 | // } | 283 | } |
284 | // | 284 | |
285 | // function areDifferences (videos1: Video[], videos2: Video[]) { | 285 | function areDifferences (videos1: Video[], videos2: Video[]) { |
286 | // // Remove some keys we don't want to compare | 286 | // Remove some keys we don't want to compare |
287 | // videos1.concat(videos2).forEach(video => { | 287 | videos1.concat(videos2).forEach(video => { |
288 | // delete video.id | 288 | delete video.id |
289 | // delete video.isLocal | 289 | delete video.isLocal |
290 | // delete video.thumbnailPath | 290 | delete video.thumbnailPath |
291 | // delete video.updatedAt | 291 | delete video.updatedAt |
292 | // delete video.views | 292 | delete video.views |
293 | // }) | 293 | }) |
294 | // | 294 | |
295 | // if (videos1.length !== videos2.length) { | 295 | if (videos1.length !== videos2.length) { |
296 | // return `Videos length are different (${videos1.length}/${videos2.length}).` | 296 | return `Videos length are different (${videos1.length}/${videos2.length}).` |
297 | // } | 297 | } |
298 | // | 298 | |
299 | // for (const video1 of videos1) { | 299 | for (const video1 of videos1) { |
300 | // const video2 = videos2.find(video => video.uuid === video1.uuid) | 300 | const video2 = videos2.find(video => video.uuid === video1.uuid) |
301 | // | 301 | |
302 | // if (!video2) return 'Video ' + video1.uuid + ' is missing.' | 302 | if (!video2) return 'Video ' + video1.uuid + ' is missing.' |
303 | // | 303 | |
304 | // for (const videoKey of Object.keys(video1)) { | 304 | for (const videoKey of Object.keys(video1)) { |
305 | // const attribute1 = video1[videoKey] | 305 | const attribute1 = video1[videoKey] |
306 | // const attribute2 = video2[videoKey] | 306 | const attribute2 = video2[videoKey] |
307 | // | 307 | |
308 | // if (videoKey === 'tags') { | 308 | if (videoKey === 'tags') { |
309 | // if (attribute1.length !== attribute2.length) { | 309 | if (attribute1.length !== attribute2.length) { |
310 | // return 'Tags are different.' | 310 | return 'Tags are different.' |
311 | // } | 311 | } |
312 | // | 312 | |
313 | // attribute1.forEach(tag1 => { | 313 | attribute1.forEach(tag1 => { |
314 | // if (attribute2.indexOf(tag1) === -1) { | 314 | if (attribute2.indexOf(tag1) === -1) { |
315 | // return 'Tag ' + tag1 + ' is missing.' | 315 | return 'Tag ' + tag1 + ' is missing.' |
316 | // } | 316 | } |
317 | // }) | 317 | }) |
318 | // } else if (videoKey === 'files') { | 318 | } else if (videoKey === 'files') { |
319 | // if (attribute1.length !== attribute2.length) { | 319 | if (attribute1.length !== attribute2.length) { |
320 | // return 'Video files are different.' | 320 | return 'Video files are different.' |
321 | // } | 321 | } |
322 | // | 322 | |
323 | // attribute1.forEach((videoFile1: VideoFile) => { | 323 | attribute1.forEach((videoFile1: VideoFile) => { |
324 | // const videoFile2: VideoFile = attribute2.find(videoFile => videoFile.magnetUri === videoFile1.magnetUri) | 324 | const videoFile2: VideoFile = attribute2.find(videoFile => videoFile.magnetUri === videoFile1.magnetUri) |
325 | // if (!videoFile2) { | 325 | if (!videoFile2) { |
326 | // return `Video ${video1.uuid} has missing video file ${videoFile1.magnetUri}.` | 326 | return `Video ${video1.uuid} has missing video file ${videoFile1.magnetUri}.` |
327 | // } | 327 | } |
328 | // | 328 | |
329 | // if (videoFile1.size !== videoFile2.size || videoFile1.resolutionLabel !== videoFile2.resolutionLabel) { | 329 | if (videoFile1.size !== videoFile2.size || videoFile1.resolutionLabel !== videoFile2.resolutionLabel) { |
330 | // return `Video ${video1.uuid} has different video file ${videoFile1.magnetUri}.` | 330 | return `Video ${video1.uuid} has different video file ${videoFile1.magnetUri}.` |
331 | // } | 331 | } |
332 | // }) | 332 | }) |
333 | // } else { | 333 | } else { |
334 | // if (attribute1 !== attribute2) { | 334 | if (attribute1 !== attribute2) { |
335 | // return `Video ${video1.uuid} has different value for attribute ${videoKey}.` | 335 | return `Video ${video1.uuid} has different value for attribute ${videoKey}.` |
336 | // } | 336 | } |
337 | // } | 337 | } |
338 | // } | 338 | } |
339 | // } | 339 | } |
340 | // | 340 | |
341 | // return undefined | 341 | return undefined |
342 | // } | 342 | } |
343 | // | 343 | |
344 | // function goodbye () { | 344 | function goodbye () { |
345 | // return process.exit(-1) | 345 | return process.exit(-1) |
346 | // } | 346 | } |
347 | // | 347 | |
348 | // async function isTherePendingRequests (servers: ServerInfo[]) { | 348 | async function isTherePendingRequests (servers: ServerInfo[]) { |
349 | // const tasks: Promise<any>[] = [] | 349 | const tasks: Promise<any>[] = [] |
350 | // let pendingRequests = false | 350 | let pendingRequests = false |
351 | // | 351 | |
352 | // // Check if each server has pending request | 352 | // Check if each server has pending request |
353 | // for (const server of servers) { | 353 | for (const server of servers) { |
354 | // const p = getRequestsStats(server).then(res => { | 354 | const p = getJobsListPaginationAndSort(server.url, server.accessToken, 0, 10, '-createdAt') |
355 | // const stats = res.body | 355 | .then(res => { |
356 | // | 356 | const jobs = res.body.data |
357 | // if ( | 357 | |
358 | // stats.requestScheduler.totalRequests !== 0 || | 358 | for (const job of jobs) { |
359 | // stats.requestVideoEventScheduler.totalRequests !== 0 || | 359 | if (job.state === 'pending' || job.state === 'processing') { |
360 | // stats.requestVideoQaduScheduler.totalRequests !== 0 | 360 | pendingRequests = true |
361 | // ) { | 361 | } |
362 | // pendingRequests = true | 362 | } |
363 | // } | 363 | }) |
364 | // }) | 364 | |
365 | // | 365 | tasks.push(p) |
366 | // tasks.push(p) | 366 | } |
367 | // } | 367 | |
368 | // | 368 | await Promise.all(tasks) |
369 | // await Promise.all(tasks) | 369 | |
370 | // | 370 | return pendingRequests |
371 | // return pendingRequests | 371 | } |
372 | // } | ||