diff options
32 files changed, 225 insertions, 252 deletions
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 8dbc1b060..65f89ff7f 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts | |||
@@ -449,14 +449,21 @@ const FEEDS = { | |||
449 | // Special constants for a test instance | 449 | // Special constants for a test instance |
450 | if (isTestInstance() === true) { | 450 | if (isTestInstance() === true) { |
451 | ACTOR_FOLLOW_SCORE.BASE = 20 | 451 | ACTOR_FOLLOW_SCORE.BASE = 20 |
452 | |||
452 | REMOTE_SCHEME.HTTP = 'http' | 453 | REMOTE_SCHEME.HTTP = 'http' |
453 | REMOTE_SCHEME.WS = 'ws' | 454 | REMOTE_SCHEME.WS = 'ws' |
455 | |||
454 | STATIC_MAX_AGE = '0' | 456 | STATIC_MAX_AGE = '0' |
457 | |||
455 | ACTIVITY_PUB.COLLECTION_ITEMS_PER_PAGE = 2 | 458 | ACTIVITY_PUB.COLLECTION_ITEMS_PER_PAGE = 2 |
456 | ACTIVITY_PUB.ACTOR_REFRESH_INTERVAL = 10 * 1000 // 10 seconds | 459 | ACTIVITY_PUB.ACTOR_REFRESH_INTERVAL = 10 * 1000 // 10 seconds |
460 | |||
457 | CONSTRAINTS_FIELDS.ACTORS.AVATAR.FILE_SIZE.max = 100 * 1024 // 100KB | 461 | CONSTRAINTS_FIELDS.ACTORS.AVATAR.FILE_SIZE.max = 100 * 1024 // 100KB |
462 | |||
458 | SCHEDULER_INTERVAL = 10000 | 463 | SCHEDULER_INTERVAL = 10000 |
459 | VIDEO_VIEW_LIFETIME = 1000 // 1 second | 464 | VIDEO_VIEW_LIFETIME = 1000 // 1 second |
465 | |||
466 | JOB_ATTEMPTS['email'] = 1 | ||
460 | } | 467 | } |
461 | 468 | ||
462 | updateWebserverConfig() | 469 | updateWebserverConfig() |
diff --git a/server/lib/activitypub/process/process-update.ts b/server/lib/activitypub/process/process-update.ts index 77de8c155..1ebda46d3 100644 --- a/server/lib/activitypub/process/process-update.ts +++ b/server/lib/activitypub/process/process-update.ts | |||
@@ -1,5 +1,5 @@ | |||
1 | import * as Bluebird from 'bluebird' | 1 | import * as Bluebird from 'bluebird' |
2 | import { ActivityUpdate } from '../../../../shared/models/activitypub' | 2 | import { ActivityUpdate, VideoTorrentObject } from '../../../../shared/models/activitypub' |
3 | import { ActivityPubActor } from '../../../../shared/models/activitypub/activitypub-actor' | 3 | import { ActivityPubActor } from '../../../../shared/models/activitypub/activitypub-actor' |
4 | import { retryTransactionWrapper } from '../../../helpers/database-utils' | 4 | import { retryTransactionWrapper } from '../../../helpers/database-utils' |
5 | import { logger } from '../../../helpers/logger' | 5 | import { logger } from '../../../helpers/logger' |
@@ -12,13 +12,13 @@ import { VideoChannelModel } from '../../../models/video/video-channel' | |||
12 | import { VideoFileModel } from '../../../models/video/video-file' | 12 | import { VideoFileModel } from '../../../models/video/video-file' |
13 | import { fetchAvatarIfExists, getOrCreateActorAndServerAndModel, updateActorAvatarInstance, updateActorInstance } from '../actor' | 13 | import { fetchAvatarIfExists, getOrCreateActorAndServerAndModel, updateActorAvatarInstance, updateActorInstance } from '../actor' |
14 | import { | 14 | import { |
15 | fetchRemoteVideo, | ||
16 | generateThumbnailFromUrl, | 15 | generateThumbnailFromUrl, |
17 | getOrCreateAccountAndVideoAndChannel, | 16 | getOrCreateAccountAndVideoAndChannel, |
18 | getOrCreateVideoChannel, | 17 | getOrCreateVideoChannel, |
19 | videoActivityObjectToDBAttributes, | 18 | videoActivityObjectToDBAttributes, |
20 | videoFileActivityUrlToDBAttributes | 19 | videoFileActivityUrlToDBAttributes |
21 | } from '../videos' | 20 | } from '../videos' |
21 | import { sanitizeAndCheckVideoTorrentObject } from '../../../helpers/custom-validators/activitypub/videos' | ||
22 | 22 | ||
23 | async function processUpdateActivity (activity: ActivityUpdate) { | 23 | async function processUpdateActivity (activity: ActivityUpdate) { |
24 | const actor = await getOrCreateActorAndServerAndModel(activity.actor) | 24 | const actor = await getOrCreateActorAndServerAndModel(activity.actor) |
@@ -30,7 +30,7 @@ async function processUpdateActivity (activity: ActivityUpdate) { | |||
30 | return processUpdateActor(actor, activity) | 30 | return processUpdateActor(actor, activity) |
31 | } | 31 | } |
32 | 32 | ||
33 | return | 33 | return undefined |
34 | } | 34 | } |
35 | 35 | ||
36 | // --------------------------------------------------------------------------- | 36 | // --------------------------------------------------------------------------- |
@@ -51,10 +51,12 @@ function processUpdateVideo (actor: ActorModel, activity: ActivityUpdate) { | |||
51 | } | 51 | } |
52 | 52 | ||
53 | async function updateRemoteVideo (actor: ActorModel, activity: ActivityUpdate) { | 53 | async function updateRemoteVideo (actor: ActorModel, activity: ActivityUpdate) { |
54 | const videoUrl = activity.object.id | 54 | const videoObject = activity.object as VideoTorrentObject |
55 | 55 | ||
56 | const videoObject = await fetchRemoteVideo(videoUrl) | 56 | if (sanitizeAndCheckVideoTorrentObject(videoObject) === false) { |
57 | if (!videoObject) throw new Error('Cannot fetch remote video with url: ' + videoUrl) | 57 | logger.debug('Video sent by update is not valid.', { videoObject }) |
58 | return undefined | ||
59 | } | ||
58 | 60 | ||
59 | const res = await getOrCreateAccountAndVideoAndChannel(videoObject.id) | 61 | const res = await getOrCreateAccountAndVideoAndChannel(videoObject.id) |
60 | 62 | ||
diff --git a/server/tests/activitypub.ts b/server/tests/activitypub.ts index 9e29b0fa8..53a04d363 100644 --- a/server/tests/activitypub.ts +++ b/server/tests/activitypub.ts | |||
@@ -31,10 +31,5 @@ describe('Test activitypub', function () { | |||
31 | 31 | ||
32 | after(async function () { | 32 | after(async function () { |
33 | killallServers([ server ]) | 33 | killallServers([ server ]) |
34 | |||
35 | // Keep the logs if the test failed | ||
36 | if (this['ok']) { | ||
37 | await flushTests() | ||
38 | } | ||
39 | }) | 34 | }) |
40 | }) | 35 | }) |
diff --git a/server/tests/api/server/config.ts b/server/tests/api/server/config.ts index f24961b85..4de0d6b10 100644 --- a/server/tests/api/server/config.ts +++ b/server/tests/api/server/config.ts | |||
@@ -234,11 +234,6 @@ describe('Test config', function () { | |||
234 | }) | 234 | }) |
235 | 235 | ||
236 | after(async function () { | 236 | after(async function () { |
237 | process.kill(-server.app.pid) | 237 | killallServers([ server ]) |
238 | |||
239 | // Keep the logs if the test failed | ||
240 | if (this['ok']) { | ||
241 | await flushTests() | ||
242 | } | ||
243 | }) | 238 | }) |
244 | }) | 239 | }) |
diff --git a/server/tests/api/server/email.ts b/server/tests/api/server/email.ts index 068e820c8..4be013c84 100644 --- a/server/tests/api/server/email.ts +++ b/server/tests/api/server/email.ts | |||
@@ -5,6 +5,7 @@ import 'mocha' | |||
5 | import { askResetPassword, createUser, reportVideoAbuse, resetPassword, runServer, uploadVideo, userLogin, wait } from '../../utils' | 5 | import { askResetPassword, createUser, reportVideoAbuse, resetPassword, runServer, uploadVideo, userLogin, wait } from '../../utils' |
6 | import { flushTests, killallServers, ServerInfo, setAccessTokensToServers } from '../../utils/index' | 6 | import { flushTests, killallServers, ServerInfo, setAccessTokensToServers } from '../../utils/index' |
7 | import { mockSmtpServer } from '../../utils/miscs/email' | 7 | import { mockSmtpServer } from '../../utils/miscs/email' |
8 | import { waitJobs } from '../../utils/server/jobs' | ||
8 | 9 | ||
9 | const expect = chai.expect | 10 | const expect = chai.expect |
10 | 11 | ||
@@ -32,8 +33,6 @@ describe('Test emails', function () { | |||
32 | } | 33 | } |
33 | } | 34 | } |
34 | server = await runServer(1, overrideConfig) | 35 | server = await runServer(1, overrideConfig) |
35 | |||
36 | await wait(5000) | ||
37 | await setAccessTokensToServers([ server ]) | 36 | await setAccessTokensToServers([ server ]) |
38 | 37 | ||
39 | { | 38 | { |
@@ -57,7 +56,7 @@ describe('Test emails', function () { | |||
57 | 56 | ||
58 | await askResetPassword(server.url, 'user_1@example.com') | 57 | await askResetPassword(server.url, 'user_1@example.com') |
59 | 58 | ||
60 | await wait(3000) | 59 | await waitJobs(server) |
61 | expect(emails).to.have.lengthOf(1) | 60 | expect(emails).to.have.lengthOf(1) |
62 | 61 | ||
63 | const email = emails[0] | 62 | const email = emails[0] |
@@ -101,7 +100,7 @@ describe('Test emails', function () { | |||
101 | const reason = 'my super bad reason' | 100 | const reason = 'my super bad reason' |
102 | await reportVideoAbuse(server.url, server.accessToken, videoUUID, reason) | 101 | await reportVideoAbuse(server.url, server.accessToken, videoUUID, reason) |
103 | 102 | ||
104 | await wait(3000) | 103 | await waitJobs(server) |
105 | expect(emails).to.have.lengthOf(2) | 104 | expect(emails).to.have.lengthOf(2) |
106 | 105 | ||
107 | const email = emails[1] | 106 | const email = emails[1] |
@@ -115,10 +114,5 @@ describe('Test emails', function () { | |||
115 | 114 | ||
116 | after(async function () { | 115 | after(async function () { |
117 | killallServers([ server ]) | 116 | killallServers([ server ]) |
118 | |||
119 | // Keep the logs if the test failed | ||
120 | if (this['ok']) { | ||
121 | await flushTests() | ||
122 | } | ||
123 | }) | 117 | }) |
124 | }) | 118 | }) |
diff --git a/server/tests/api/server/follows.ts b/server/tests/api/server/follows.ts index 9d619a7de..ce42df0a6 100644 --- a/server/tests/api/server/follows.ts +++ b/server/tests/api/server/follows.ts | |||
@@ -5,10 +5,13 @@ import 'mocha' | |||
5 | import { Video, VideoPrivacy } from '../../../../shared/models/videos' | 5 | import { Video, VideoPrivacy } from '../../../../shared/models/videos' |
6 | import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model' | 6 | import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model' |
7 | import { completeVideoCheck } from '../../utils' | 7 | import { completeVideoCheck } from '../../utils' |
8 | |||
9 | import { | 8 | import { |
10 | flushAndRunMultipleServers, flushTests, getVideosList, killallServers, ServerInfo, setAccessTokensToServers, uploadVideo, | 9 | flushAndRunMultipleServers, |
11 | wait | 10 | getVideosList, |
11 | killallServers, | ||
12 | ServerInfo, | ||
13 | setAccessTokensToServers, | ||
14 | uploadVideo | ||
12 | } from '../../utils/index' | 15 | } from '../../utils/index' |
13 | import { dateIsValid } from '../../utils/miscs/miscs' | 16 | import { dateIsValid } from '../../utils/miscs/miscs' |
14 | import { follow, getFollowersListPaginationAndSort, getFollowingListPaginationAndSort, unfollow } from '../../utils/server/follows' | 17 | import { follow, getFollowersListPaginationAndSort, getFollowingListPaginationAndSort, unfollow } from '../../utils/server/follows' |
@@ -16,10 +19,13 @@ import { expectAccountFollows } from '../../utils/users/accounts' | |||
16 | import { userLogin } from '../../utils/users/login' | 19 | import { userLogin } from '../../utils/users/login' |
17 | import { createUser } from '../../utils/users/users' | 20 | import { createUser } from '../../utils/users/users' |
18 | import { | 21 | import { |
19 | addVideoCommentReply, addVideoCommentThread, getVideoCommentThreads, | 22 | addVideoCommentReply, |
23 | addVideoCommentThread, | ||
24 | getVideoCommentThreads, | ||
20 | getVideoThreadComments | 25 | getVideoThreadComments |
21 | } from '../../utils/videos/video-comments' | 26 | } from '../../utils/videos/video-comments' |
22 | import { rateVideo } from '../../utils/videos/videos' | 27 | import { rateVideo } from '../../utils/videos/videos' |
28 | import { waitJobs } from '../../utils/server/jobs' | ||
23 | 29 | ||
24 | const expect = chai.expect | 30 | const expect = chai.expect |
25 | 31 | ||
@@ -62,7 +68,7 @@ describe('Test follows', function () { | |||
62 | 68 | ||
63 | await follow(servers[0].url, [ servers[1].url, servers[2].url ], servers[0].accessToken) | 69 | await follow(servers[0].url, [ servers[1].url, servers[2].url ], servers[0].accessToken) |
64 | 70 | ||
65 | await wait(7000) | 71 | await waitJobs(servers) |
66 | }) | 72 | }) |
67 | 73 | ||
68 | it('Should have 2 followings on server 1', async function () { | 74 | it('Should have 2 followings on server 1', async function () { |
@@ -135,7 +141,7 @@ describe('Test follows', function () { | |||
135 | 141 | ||
136 | await unfollow(servers[0].url, servers[0].accessToken, servers[2]) | 142 | await unfollow(servers[0].url, servers[0].accessToken, servers[2]) |
137 | 143 | ||
138 | await wait(3000) | 144 | await waitJobs(servers) |
139 | }) | 145 | }) |
140 | 146 | ||
141 | it('Should not follow server 3 on server 1 anymore', async function () { | 147 | it('Should not follow server 3 on server 1 anymore', async function () { |
@@ -175,7 +181,7 @@ describe('Test follows', function () { | |||
175 | await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'server2' }) | 181 | await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'server2' }) |
176 | await uploadVideo(servers[2].url, servers[2].accessToken, { name: 'server3' }) | 182 | await uploadVideo(servers[2].url, servers[2].accessToken, { name: 'server3' }) |
177 | 183 | ||
178 | await wait(5000) | 184 | await waitJobs(servers) |
179 | 185 | ||
180 | let res = await getVideosList(servers[0].url) | 186 | let res = await getVideosList(servers[0].url) |
181 | expect(res.body.total).to.equal(1) | 187 | expect(res.body.total).to.equal(1) |
@@ -240,12 +246,12 @@ describe('Test follows', function () { | |||
240 | } | 246 | } |
241 | } | 247 | } |
242 | 248 | ||
243 | await wait(5000) | 249 | await waitJobs(servers) |
244 | 250 | ||
245 | // Server 1 follows server 3 | 251 | // Server 1 follows server 3 |
246 | await follow(servers[ 0 ].url, [ servers[ 2 ].url ], servers[ 0 ].accessToken) | 252 | await follow(servers[ 0 ].url, [ servers[ 2 ].url ], servers[ 0 ].accessToken) |
247 | 253 | ||
248 | await wait(7000) | 254 | await waitJobs(servers) |
249 | }) | 255 | }) |
250 | 256 | ||
251 | it('Should have the correct follows counts 3', async function () { | 257 | it('Should have the correct follows counts 3', async function () { |
@@ -352,7 +358,7 @@ describe('Test follows', function () { | |||
352 | 358 | ||
353 | await unfollow(servers[0].url, servers[0].accessToken, servers[2]) | 359 | await unfollow(servers[0].url, servers[0].accessToken, servers[2]) |
354 | 360 | ||
355 | await wait(3000) | 361 | await waitJobs(servers) |
356 | 362 | ||
357 | let res = await getVideosList(servers[ 0 ].url) | 363 | let res = await getVideosList(servers[ 0 ].url) |
358 | expect(res.body.total).to.equal(1) | 364 | expect(res.body.total).to.equal(1) |
@@ -362,10 +368,5 @@ describe('Test follows', function () { | |||
362 | 368 | ||
363 | after(async function () { | 369 | after(async function () { |
364 | killallServers(servers) | 370 | killallServers(servers) |
365 | |||
366 | // Keep the logs if the test failed | ||
367 | if (this['ok']) { | ||
368 | await flushTests() | ||
369 | } | ||
370 | }) | 371 | }) |
371 | }) | 372 | }) |
diff --git a/server/tests/api/server/handle-down.ts b/server/tests/api/server/handle-down.ts index 889825936..55705caca 100644 --- a/server/tests/api/server/handle-down.ts +++ b/server/tests/api/server/handle-down.ts | |||
@@ -12,7 +12,7 @@ import { | |||
12 | wait | 12 | wait |
13 | } from '../../utils/index' | 13 | } from '../../utils/index' |
14 | import { follow, getFollowersListPaginationAndSort } from '../../utils/server/follows' | 14 | import { follow, getFollowersListPaginationAndSort } from '../../utils/server/follows' |
15 | import { getJobsListPaginationAndSort } from '../../utils/server/jobs' | 15 | import { getJobsListPaginationAndSort, waitJobs } from '../../utils/server/jobs' |
16 | import { | 16 | import { |
17 | addVideoCommentReply, addVideoCommentThread, getVideoCommentThreads, | 17 | addVideoCommentReply, addVideoCommentThread, getVideoCommentThreads, |
18 | getVideoThreadComments | 18 | getVideoThreadComments |
@@ -94,11 +94,11 @@ describe('Test handle downs', function () { | |||
94 | 94 | ||
95 | await follow(servers[1].url, [ servers[0].url ], servers[1].accessToken) | 95 | await follow(servers[1].url, [ servers[0].url ], servers[1].accessToken) |
96 | 96 | ||
97 | await wait(5000) | 97 | await waitJobs(servers) |
98 | 98 | ||
99 | await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) | 99 | await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) |
100 | 100 | ||
101 | await wait(5000) | 101 | await waitJobs(servers) |
102 | 102 | ||
103 | for (const server of servers) { | 103 | for (const server of servers) { |
104 | const res = await getVideosList(server.url) | 104 | const res = await getVideosList(server.url) |
@@ -118,7 +118,7 @@ describe('Test handle downs', function () { | |||
118 | videos.push(resVideo.body.video) | 118 | videos.push(resVideo.body.video) |
119 | } | 119 | } |
120 | 120 | ||
121 | await wait(2000) | 121 | await waitJobs(servers[0]) |
122 | 122 | ||
123 | await uploadVideo(servers[ 0 ].url, servers[ 0 ].accessToken, videoAttributes) | 123 | await uploadVideo(servers[ 0 ].url, servers[ 0 ].accessToken, videoAttributes) |
124 | 124 | ||
@@ -136,7 +136,9 @@ describe('Test handle downs', function () { | |||
136 | commentIdServer1 = resComment.body.comment.id | 136 | commentIdServer1 = resComment.body.comment.id |
137 | } | 137 | } |
138 | 138 | ||
139 | await wait(10000) | 139 | await waitJobs(servers[0]) |
140 | // Wait scheduler | ||
141 | await wait(3000) | ||
140 | 142 | ||
141 | const res = await getFollowersListPaginationAndSort(servers[0].url, 0, 1, 'createdAt') | 143 | const res = await getFollowersListPaginationAndSort(servers[0].url, 0, 1, 'createdAt') |
142 | expect(res.body.data).to.be.an('array') | 144 | expect(res.body.data).to.be.an('array') |
@@ -159,7 +161,7 @@ describe('Test handle downs', function () { | |||
159 | 161 | ||
160 | await follow(servers[1].url, [ servers[0].url ], servers[1].accessToken) | 162 | await follow(servers[1].url, [ servers[0].url ], servers[1].accessToken) |
161 | 163 | ||
162 | await wait(5000) | 164 | await waitJobs(servers) |
163 | 165 | ||
164 | const res = await getFollowersListPaginationAndSort(servers[0].url, 0, 1, 'createdAt') | 166 | const res = await getFollowersListPaginationAndSort(servers[0].url, 0, 1, 'createdAt') |
165 | expect(res.body.data).to.be.an('array') | 167 | expect(res.body.data).to.be.an('array') |
@@ -171,7 +173,7 @@ describe('Test handle downs', function () { | |||
171 | 173 | ||
172 | await viewVideo(servers[0].url, videos[0].uuid) | 174 | await viewVideo(servers[0].url, videos[0].uuid) |
173 | 175 | ||
174 | await wait(5000) | 176 | await waitJobs(servers) |
175 | 177 | ||
176 | const res = await getVideosList(servers[1].url) | 178 | const res = await getVideosList(servers[1].url) |
177 | expect(res.body.data).to.be.an('array') | 179 | expect(res.body.data).to.be.an('array') |
@@ -189,7 +191,7 @@ describe('Test handle downs', function () { | |||
189 | 191 | ||
190 | await addVideoCommentReply(servers[0].url, servers[0].accessToken, videos[1].uuid, commentIdServer1, 'comment 1-3') | 192 | await addVideoCommentReply(servers[0].url, servers[0].accessToken, videos[1].uuid, commentIdServer1, 'comment 1-3') |
191 | 193 | ||
192 | await wait(5000) | 194 | await waitJobs(servers) |
193 | 195 | ||
194 | const resVideo = await getVideo(servers[1].url, videos[0].uuid) | 196 | const resVideo = await getVideo(servers[1].url, videos[0].uuid) |
195 | expect(resVideo.body).not.to.be.undefined | 197 | expect(resVideo.body).not.to.be.undefined |
@@ -230,7 +232,7 @@ describe('Test handle downs', function () { | |||
230 | 232 | ||
231 | await addVideoCommentReply(servers[1].url, servers[1].accessToken, videos[1].uuid, commentIdServer2, 'comment 1-4') | 233 | await addVideoCommentReply(servers[1].url, servers[1].accessToken, videos[1].uuid, commentIdServer2, 'comment 1-4') |
232 | 234 | ||
233 | await wait(5000) | 235 | await waitJobs(servers) |
234 | 236 | ||
235 | { | 237 | { |
236 | const resComment = await getVideoThreadComments(servers[0].url, videos[1].uuid, threadIdServer1) | 238 | const resComment = await getVideoThreadComments(servers[0].url, videos[1].uuid, threadIdServer1) |
@@ -259,10 +261,5 @@ describe('Test handle downs', function () { | |||
259 | 261 | ||
260 | after(async function () { | 262 | after(async function () { |
261 | killallServers(servers) | 263 | killallServers(servers) |
262 | |||
263 | // Keep the logs if the test failed | ||
264 | if (this['ok']) { | ||
265 | await flushTests() | ||
266 | } | ||
267 | }) | 264 | }) |
268 | }) | 265 | }) |
diff --git a/server/tests/api/server/jobs.ts b/server/tests/api/server/jobs.ts index 671498769..81e389de6 100644 --- a/server/tests/api/server/jobs.ts +++ b/server/tests/api/server/jobs.ts | |||
@@ -4,7 +4,7 @@ import * as chai from 'chai' | |||
4 | import 'mocha' | 4 | import 'mocha' |
5 | import { flushTests, killallServers, ServerInfo, setAccessTokensToServers, wait } from '../../utils/index' | 5 | import { flushTests, killallServers, ServerInfo, setAccessTokensToServers, wait } from '../../utils/index' |
6 | import { doubleFollow } from '../../utils/server/follows' | 6 | import { doubleFollow } from '../../utils/server/follows' |
7 | import { getJobsList, getJobsListPaginationAndSort } from '../../utils/server/jobs' | 7 | import { getJobsList, getJobsListPaginationAndSort, waitJobs } from '../../utils/server/jobs' |
8 | import { flushAndRunMultipleServers } from '../../utils/server/servers' | 8 | import { flushAndRunMultipleServers } from '../../utils/server/servers' |
9 | import { uploadVideo } from '../../utils/videos/videos' | 9 | import { uploadVideo } from '../../utils/videos/videos' |
10 | import { dateIsValid } from '../../utils/miscs/miscs' | 10 | import { dateIsValid } from '../../utils/miscs/miscs' |
@@ -31,7 +31,7 @@ describe('Test jobs', function () { | |||
31 | await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video1' }) | 31 | await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video1' }) |
32 | await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video2' }) | 32 | await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video2' }) |
33 | 33 | ||
34 | await wait(15000) | 34 | await waitJobs(servers) |
35 | }) | 35 | }) |
36 | 36 | ||
37 | it('Should list jobs', async function () { | 37 | it('Should list jobs', async function () { |
@@ -55,10 +55,5 @@ describe('Test jobs', function () { | |||
55 | 55 | ||
56 | after(async function () { | 56 | after(async function () { |
57 | killallServers(servers) | 57 | killallServers(servers) |
58 | |||
59 | // Keep the logs if the test failed | ||
60 | if (this['ok']) { | ||
61 | await flushTests() | ||
62 | } | ||
63 | }) | 58 | }) |
64 | }) | 59 | }) |
diff --git a/server/tests/api/server/reverse-proxy.ts b/server/tests/api/server/reverse-proxy.ts index 4c2655f64..908b4a68c 100644 --- a/server/tests/api/server/reverse-proxy.ts +++ b/server/tests/api/server/reverse-proxy.ts | |||
@@ -72,11 +72,6 @@ describe('Test application behind a reverse proxy', function () { | |||
72 | }) | 72 | }) |
73 | 73 | ||
74 | after(async function () { | 74 | after(async function () { |
75 | process.kill(-server.app.pid) | 75 | killallServers([ server ]) |
76 | |||
77 | // Keep the logs if the test failed | ||
78 | if (this['ok']) { | ||
79 | await flushTests() | ||
80 | } | ||
81 | }) | 76 | }) |
82 | }) | 77 | }) |
diff --git a/server/tests/api/server/stats.ts b/server/tests/api/server/stats.ts index 71d54c0ab..e75089a14 100644 --- a/server/tests/api/server/stats.ts +++ b/server/tests/api/server/stats.ts | |||
@@ -17,6 +17,7 @@ import { | |||
17 | import { flushTests, setAccessTokensToServers } from '../../utils/index' | 17 | import { flushTests, setAccessTokensToServers } from '../../utils/index' |
18 | import { getStats } from '../../utils/server/stats' | 18 | import { getStats } from '../../utils/server/stats' |
19 | import { addVideoCommentThread } from '../../utils/videos/video-comments' | 19 | import { addVideoCommentThread } from '../../utils/videos/video-comments' |
20 | import { waitJobs } from '../../utils/server/jobs' | ||
20 | 21 | ||
21 | const expect = chai.expect | 22 | const expect = chai.expect |
22 | 23 | ||
@@ -46,7 +47,7 @@ describe('Test stats', function () { | |||
46 | await viewVideo(servers[0].url, videoUUID) | 47 | await viewVideo(servers[0].url, videoUUID) |
47 | 48 | ||
48 | await follow(servers[2].url, [ servers[0].url ], servers[2].accessToken) | 49 | await follow(servers[2].url, [ servers[0].url ], servers[2].accessToken) |
49 | await wait(5000) | 50 | await waitJobs(servers) |
50 | }) | 51 | }) |
51 | 52 | ||
52 | it('Should have the correct stats on instance 1', async function () { | 53 | it('Should have the correct stats on instance 1', async function () { |
@@ -93,10 +94,5 @@ describe('Test stats', function () { | |||
93 | 94 | ||
94 | after(async function () { | 95 | after(async function () { |
95 | killallServers(servers) | 96 | killallServers(servers) |
96 | |||
97 | // Keep the logs if the test failed | ||
98 | if (this['ok']) { | ||
99 | await flushTests() | ||
100 | } | ||
101 | }) | 97 | }) |
102 | }) | 98 | }) |
diff --git a/server/tests/api/users/users-multiple-servers.ts b/server/tests/api/users/users-multiple-servers.ts index 0e1e6c97d..81489021b 100644 --- a/server/tests/api/users/users-multiple-servers.ts +++ b/server/tests/api/users/users-multiple-servers.ts | |||
@@ -20,6 +20,7 @@ import { checkActorFilesWereRemoved, getAccount, getAccountsList } from '../../u | |||
20 | import { setAccessTokensToServers } from '../../utils/users/login' | 20 | import { setAccessTokensToServers } from '../../utils/users/login' |
21 | import { User } from '../../../../shared/models/users' | 21 | import { User } from '../../../../shared/models/users' |
22 | import { VideoChannel } from '../../../../shared/models/videos' | 22 | import { VideoChannel } from '../../../../shared/models/videos' |
23 | import { waitJobs } from '../../utils/server/jobs' | ||
23 | 24 | ||
24 | const expect = chai.expect | 25 | const expect = chai.expect |
25 | 26 | ||
@@ -76,7 +77,7 @@ describe('Test users with multiple servers', function () { | |||
76 | videoUUID = resVideo.body.video.uuid | 77 | videoUUID = resVideo.body.video.uuid |
77 | } | 78 | } |
78 | 79 | ||
79 | await wait(5000) | 80 | await waitJobs(servers) |
80 | }) | 81 | }) |
81 | 82 | ||
82 | it('Should be able to update my display name', async function () { | 83 | it('Should be able to update my display name', async function () { |
@@ -92,7 +93,7 @@ describe('Test users with multiple servers', function () { | |||
92 | user = res.body | 93 | user = res.body |
93 | expect(user.account.displayName).to.equal('my super display name') | 94 | expect(user.account.displayName).to.equal('my super display name') |
94 | 95 | ||
95 | await wait(5000) | 96 | await waitJobs(servers) |
96 | }) | 97 | }) |
97 | 98 | ||
98 | it('Should be able to update my description', async function () { | 99 | it('Should be able to update my description', async function () { |
@@ -109,7 +110,7 @@ describe('Test users with multiple servers', function () { | |||
109 | expect(user.account.displayName).to.equal('my super display name') | 110 | expect(user.account.displayName).to.equal('my super display name') |
110 | expect(user.account.description).to.equal('my super description updated') | 111 | expect(user.account.description).to.equal('my super description updated') |
111 | 112 | ||
112 | await wait(5000) | 113 | await waitJobs(servers) |
113 | }) | 114 | }) |
114 | 115 | ||
115 | it('Should be able to update my avatar', async function () { | 116 | it('Should be able to update my avatar', async function () { |
@@ -128,7 +129,7 @@ describe('Test users with multiple servers', function () { | |||
128 | 129 | ||
129 | await testImage(servers[0].url, 'avatar2-resized', user.account.avatar.path, '.png') | 130 | await testImage(servers[0].url, 'avatar2-resized', user.account.avatar.path, '.png') |
130 | 131 | ||
131 | await wait(5000) | 132 | await waitJobs(servers) |
132 | }) | 133 | }) |
133 | 134 | ||
134 | it('Should have updated my profile on other servers too', async function () { | 135 | it('Should have updated my profile on other servers too', async function () { |
@@ -178,7 +179,7 @@ describe('Test users with multiple servers', function () { | |||
178 | 179 | ||
179 | await removeUser(servers[0].url, userId, servers[0].accessToken) | 180 | await removeUser(servers[0].url, userId, servers[0].accessToken) |
180 | 181 | ||
181 | await wait(5000) | 182 | await waitJobs(servers) |
182 | 183 | ||
183 | for (const server of servers) { | 184 | for (const server of servers) { |
184 | const resAccounts = await getAccountsList(server.url, '-createdAt') | 185 | const resAccounts = await getAccountsList(server.url, '-createdAt') |
@@ -209,10 +210,5 @@ describe('Test users with multiple servers', function () { | |||
209 | 210 | ||
210 | after(async function () { | 211 | after(async function () { |
211 | killallServers(servers) | 212 | killallServers(servers) |
212 | |||
213 | // Keep the logs if the test failed | ||
214 | if (this[ 'ok' ]) { | ||
215 | await flushTests() | ||
216 | } | ||
217 | }) | 213 | }) |
218 | }) | 214 | }) |
diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts index edc46a644..cb18898ce 100644 --- a/server/tests/api/videos/multiple-servers.ts +++ b/server/tests/api/videos/multiple-servers.ts | |||
@@ -15,7 +15,8 @@ import { | |||
15 | dateIsValid, | 15 | dateIsValid, |
16 | doubleFollow, | 16 | doubleFollow, |
17 | flushAndRunMultipleServers, | 17 | flushAndRunMultipleServers, |
18 | flushTests, getLocalVideos, | 18 | flushTests, |
19 | getLocalVideos, | ||
19 | getVideo, | 20 | getVideo, |
20 | getVideoChannelsList, | 21 | getVideoChannelsList, |
21 | getVideosList, | 22 | getVideosList, |
@@ -39,7 +40,7 @@ import { | |||
39 | getVideoCommentThreads, | 40 | getVideoCommentThreads, |
40 | getVideoThreadComments | 41 | getVideoThreadComments |
41 | } from '../../utils/videos/video-comments' | 42 | } from '../../utils/videos/video-comments' |
42 | import { getAccountsList } from '../../utils/users/accounts' | 43 | import { waitJobs } from '../../utils/server/jobs' |
43 | 44 | ||
44 | const expect = chai.expect | 45 | const expect = chai.expect |
45 | 46 | ||
@@ -102,7 +103,7 @@ describe('Test multiple servers', function () { | |||
102 | } | 103 | } |
103 | await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) | 104 | await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) |
104 | 105 | ||
105 | await wait(10000) | 106 | await waitJobs(servers) |
106 | 107 | ||
107 | // All servers should have this video | 108 | // All servers should have this video |
108 | let publishedAt: string = null | 109 | let publishedAt: string = null |
@@ -177,7 +178,7 @@ describe('Test multiple servers', function () { | |||
177 | await uploadVideo(servers[1].url, userAccessToken, videoAttributes) | 178 | await uploadVideo(servers[1].url, userAccessToken, videoAttributes) |
178 | 179 | ||
179 | // Transcoding | 180 | // Transcoding |
180 | await wait(30000) | 181 | await waitJobs(servers) |
181 | 182 | ||
182 | // All servers should have this video | 183 | // All servers should have this video |
183 | for (const server of servers) { | 184 | for (const server of servers) { |
@@ -266,7 +267,7 @@ describe('Test multiple servers', function () { | |||
266 | } | 267 | } |
267 | await uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes2) | 268 | await uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes2) |
268 | 269 | ||
269 | await wait(10000) | 270 | await waitJobs(servers) |
270 | 271 | ||
271 | // All servers should have this video | 272 | // All servers should have this video |
272 | for (const server of servers) { | 273 | for (const server of servers) { |
@@ -496,15 +497,15 @@ describe('Test multiple servers', function () { | |||
496 | await viewVideo(servers[2].url, localVideosServer3[1]) | 497 | await viewVideo(servers[2].url, localVideosServer3[1]) |
497 | 498 | ||
498 | await Promise.all(tasks) | 499 | await Promise.all(tasks) |
499 | await wait(1500) | 500 | await waitJobs(servers) |
500 | 501 | ||
501 | await viewVideo(servers[2].url, localVideosServer3[0]) | 502 | await viewVideo(servers[2].url, localVideosServer3[0]) |
502 | 503 | ||
503 | await wait(1500) | 504 | await waitJobs(servers) |
504 | 505 | ||
505 | await viewVideo(servers[2].url, localVideosServer3[0]) | 506 | await viewVideo(servers[2].url, localVideosServer3[0]) |
506 | 507 | ||
507 | await wait(5000) | 508 | await waitJobs(servers) |
508 | 509 | ||
509 | for (const server of servers) { | 510 | for (const server of servers) { |
510 | const res = await getVideosList(server.url) | 511 | const res = await getVideosList(server.url) |
@@ -535,7 +536,7 @@ describe('Test multiple servers', function () { | |||
535 | 536 | ||
536 | await Promise.all(tasks) | 537 | await Promise.all(tasks) |
537 | 538 | ||
538 | await wait(10000) | 539 | await waitJobs(servers) |
539 | 540 | ||
540 | let baseVideos = null | 541 | let baseVideos = null |
541 | 542 | ||
@@ -572,7 +573,7 @@ describe('Test multiple servers', function () { | |||
572 | await wait(200) | 573 | await wait(200) |
573 | await rateVideo(servers[2].url, servers[2].accessToken, remoteVideosServer3[0], 'like') | 574 | await rateVideo(servers[2].url, servers[2].accessToken, remoteVideosServer3[0], 'like') |
574 | 575 | ||
575 | await wait(10000) | 576 | await waitJobs(servers) |
576 | 577 | ||
577 | let baseVideos = null | 578 | let baseVideos = null |
578 | for (const server of servers) { | 579 | for (const server of servers) { |
@@ -614,7 +615,7 @@ describe('Test multiple servers', function () { | |||
614 | 615 | ||
615 | await updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, attributes) | 616 | await updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, attributes) |
616 | 617 | ||
617 | await wait(5000) | 618 | await waitJobs(servers) |
618 | }) | 619 | }) |
619 | 620 | ||
620 | it('Should have the video 3 updated on each server', async function () { | 621 | it('Should have the video 3 updated on each server', async function () { |
@@ -670,7 +671,7 @@ describe('Test multiple servers', function () { | |||
670 | await removeVideo(servers[2].url, servers[2].accessToken, toRemove[0].id) | 671 | await removeVideo(servers[2].url, servers[2].accessToken, toRemove[0].id) |
671 | await removeVideo(servers[2].url, servers[2].accessToken, toRemove[1].id) | 672 | await removeVideo(servers[2].url, servers[2].accessToken, toRemove[1].id) |
672 | 673 | ||
673 | await wait(5000) | 674 | await waitJobs(servers) |
674 | }) | 675 | }) |
675 | 676 | ||
676 | it('Should not have files of videos 3 and 3-2 on each server', async function () { | 677 | it('Should not have files of videos 3 and 3-2 on each server', async function () { |
@@ -749,7 +750,7 @@ describe('Test multiple servers', function () { | |||
749 | await addVideoCommentThread(servers[ 2 ].url, servers[ 2 ].accessToken, videoUUID, text) | 750 | await addVideoCommentThread(servers[ 2 ].url, servers[ 2 ].accessToken, videoUUID, text) |
750 | } | 751 | } |
751 | 752 | ||
752 | await wait(5000) | 753 | await waitJobs(servers) |
753 | 754 | ||
754 | { | 755 | { |
755 | const res = await getVideoCommentThreads(servers[1].url, videoUUID, 0, 5) | 756 | const res = await getVideoCommentThreads(servers[1].url, videoUUID, 0, 5) |
@@ -759,7 +760,7 @@ describe('Test multiple servers', function () { | |||
759 | await addVideoCommentReply(servers[ 1 ].url, servers[ 1 ].accessToken, videoUUID, threadId, text) | 760 | await addVideoCommentReply(servers[ 1 ].url, servers[ 1 ].accessToken, videoUUID, threadId, text) |
760 | } | 761 | } |
761 | 762 | ||
762 | await wait(5000) | 763 | await waitJobs(servers) |
763 | 764 | ||
764 | { | 765 | { |
765 | const res1 = await getVideoCommentThreads(servers[2].url, videoUUID, 0, 5) | 766 | const res1 = await getVideoCommentThreads(servers[2].url, videoUUID, 0, 5) |
@@ -775,7 +776,7 @@ describe('Test multiple servers', function () { | |||
775 | await addVideoCommentReply(servers[ 2 ].url, servers[ 2 ].accessToken, videoUUID, childCommentId, text2) | 776 | await addVideoCommentReply(servers[ 2 ].url, servers[ 2 ].accessToken, videoUUID, childCommentId, text2) |
776 | } | 777 | } |
777 | 778 | ||
778 | await wait(5000) | 779 | await waitJobs(servers) |
779 | }) | 780 | }) |
780 | 781 | ||
781 | it('Should have these threads', async function () { | 782 | it('Should have these threads', async function () { |
@@ -848,7 +849,7 @@ describe('Test multiple servers', function () { | |||
848 | 849 | ||
849 | await deleteVideoComment(servers[2].url, servers[2].accessToken, videoUUID, childOfFirstChild.comment.id) | 850 | await deleteVideoComment(servers[2].url, servers[2].accessToken, videoUUID, childOfFirstChild.comment.id) |
850 | 851 | ||
851 | await wait(5000) | 852 | await waitJobs(servers) |
852 | }) | 853 | }) |
853 | 854 | ||
854 | it('Should not have this comment anymore', async function () { | 855 | it('Should not have this comment anymore', async function () { |
@@ -877,7 +878,7 @@ describe('Test multiple servers', function () { | |||
877 | const threadId = res1.body.data.find(c => c.text === 'my super first comment').id | 878 | const threadId = res1.body.data.find(c => c.text === 'my super first comment').id |
878 | await deleteVideoComment(servers[0].url, servers[0].accessToken, videoUUID, threadId) | 879 | await deleteVideoComment(servers[0].url, servers[0].accessToken, videoUUID, threadId) |
879 | 880 | ||
880 | await wait(5000) | 881 | await waitJobs(servers) |
881 | }) | 882 | }) |
882 | 883 | ||
883 | it('Should have the thread comments deleted on other servers too', async function () { | 884 | it('Should have the thread comments deleted on other servers too', async function () { |
@@ -910,7 +911,7 @@ describe('Test multiple servers', function () { | |||
910 | 911 | ||
911 | await updateVideo(servers[0].url, servers[0].accessToken, videoUUID, attributes) | 912 | await updateVideo(servers[0].url, servers[0].accessToken, videoUUID, attributes) |
912 | 913 | ||
913 | await wait(5000) | 914 | await waitJobs(servers) |
914 | 915 | ||
915 | for (const server of servers) { | 916 | for (const server of servers) { |
916 | const res = await getVideo(server.url, videoUUID) | 917 | const res = await getVideo(server.url, videoUUID) |
@@ -941,7 +942,7 @@ describe('Test multiple servers', function () { | |||
941 | await req.attach('videofile', filePath) | 942 | await req.attach('videofile', filePath) |
942 | .expect(200) | 943 | .expect(200) |
943 | 944 | ||
944 | await wait(40000) | 945 | await waitJobs(servers) |
945 | 946 | ||
946 | for (const server of servers) { | 947 | for (const server of servers) { |
947 | const res = await getVideosList(server.url) | 948 | const res = await getVideosList(server.url) |
diff --git a/server/tests/api/videos/services.ts b/server/tests/api/videos/services.ts index 51db000a2..2f1424292 100644 --- a/server/tests/api/videos/services.ts +++ b/server/tests/api/videos/services.ts | |||
@@ -54,7 +54,8 @@ describe('Test services', function () { | |||
54 | const maxWidth = 50 | 54 | const maxWidth = 50 |
55 | 55 | ||
56 | const res = await getOEmbed(server.url, oembedUrl, format, maxHeight, maxWidth) | 56 | const res = await getOEmbed(server.url, oembedUrl, format, maxHeight, maxWidth) |
57 | const expectedHtml = `<iframe width="50" height="50" src="http://localhost:9001/videos/embed/${server.video.uuid}" ` + | 57 | const expectedHtml = '<iframe width="50" height="50" sandbox="allow-same-origin allow-scripts" ' + |
58 | `src="http://localhost:9001/videos/embed/${server.video.uuid}" ` + | ||
58 | 'frameborder="0" allowfullscreen></iframe>' | 59 | 'frameborder="0" allowfullscreen></iframe>' |
59 | 60 | ||
60 | expect(res.body.html).to.equal(expectedHtml) | 61 | expect(res.body.html).to.equal(expectedHtml) |
@@ -69,10 +70,5 @@ describe('Test services', function () { | |||
69 | 70 | ||
70 | after(async function () { | 71 | after(async function () { |
71 | killallServers([ server ]) | 72 | killallServers([ server ]) |
72 | |||
73 | // Keep the logs if the test failed | ||
74 | if (this['ok']) { | ||
75 | await flushTests() | ||
76 | } | ||
77 | }) | 73 | }) |
78 | }) | 74 | }) |
diff --git a/server/tests/api/videos/single-server.ts b/server/tests/api/videos/single-server.ts index 5e163e9df..d8af94e8f 100644 --- a/server/tests/api/videos/single-server.ts +++ b/server/tests/api/videos/single-server.ts | |||
@@ -5,10 +5,31 @@ import { keyBy } from 'lodash' | |||
5 | import 'mocha' | 5 | import 'mocha' |
6 | import { VideoPrivacy } from '../../../../shared/models/videos' | 6 | import { VideoPrivacy } from '../../../../shared/models/videos' |
7 | import { | 7 | import { |
8 | checkVideoFilesWereRemoved, completeVideoCheck, flushTests, getVideo, getVideoCategories, getVideoLanguages, getVideoLicences, | 8 | checkVideoFilesWereRemoved, |
9 | getVideoPrivacies, getVideosList, getVideosListPagination, getVideosListSort, killallServers, rateVideo, removeVideo, runServer, | 9 | completeVideoCheck, |
10 | searchVideo, searchVideoWithPagination, searchVideoWithSort, ServerInfo, setAccessTokensToServers, testImage, updateVideo, uploadVideo, | 10 | flushTests, |
11 | viewVideo, wait | 11 | getVideo, |
12 | getVideoCategories, | ||
13 | getVideoLanguages, | ||
14 | getVideoLicences, | ||
15 | getVideoPrivacies, | ||
16 | getVideosList, | ||
17 | getVideosListPagination, | ||
18 | getVideosListSort, | ||
19 | killallServers, | ||
20 | rateVideo, | ||
21 | removeVideo, | ||
22 | runServer, | ||
23 | searchVideo, | ||
24 | searchVideoWithPagination, | ||
25 | searchVideoWithSort, | ||
26 | ServerInfo, | ||
27 | setAccessTokensToServers, | ||
28 | testImage, | ||
29 | updateVideo, | ||
30 | uploadVideo, | ||
31 | viewVideo, | ||
32 | wait | ||
12 | } from '../../utils' | 33 | } from '../../utils' |
13 | 34 | ||
14 | const expect = chai.expect | 35 | const expect = chai.expect |
diff --git a/server/tests/api/videos/video-abuse.ts b/server/tests/api/videos/video-abuse.ts index f1c4ef0ce..dde309b96 100644 --- a/server/tests/api/videos/video-abuse.ts +++ b/server/tests/api/videos/video-abuse.ts | |||
@@ -5,17 +5,16 @@ import 'mocha' | |||
5 | import { VideoAbuse } from '../../../../shared/models/videos' | 5 | import { VideoAbuse } from '../../../../shared/models/videos' |
6 | import { | 6 | import { |
7 | flushAndRunMultipleServers, | 7 | flushAndRunMultipleServers, |
8 | flushTests, | ||
9 | getVideoAbusesList, | 8 | getVideoAbusesList, |
10 | getVideosList, | 9 | getVideosList, |
11 | killallServers, | 10 | killallServers, |
12 | reportVideoAbuse, | 11 | reportVideoAbuse, |
13 | ServerInfo, | 12 | ServerInfo, |
14 | setAccessTokensToServers, | 13 | setAccessTokensToServers, |
15 | uploadVideo, | 14 | uploadVideo |
16 | wait | ||
17 | } from '../../utils/index' | 15 | } from '../../utils/index' |
18 | import { doubleFollow } from '../../utils/server/follows' | 16 | import { doubleFollow } from '../../utils/server/follows' |
17 | import { waitJobs } from '../../utils/server/jobs' | ||
19 | 18 | ||
20 | const expect = chai.expect | 19 | const expect = chai.expect |
21 | 20 | ||
@@ -48,7 +47,7 @@ describe('Test video abuses', function () { | |||
48 | await uploadVideo(servers[1].url, servers[1].accessToken, video2Attributes) | 47 | await uploadVideo(servers[1].url, servers[1].accessToken, video2Attributes) |
49 | 48 | ||
50 | // Wait videos propagation, server 2 has transcoding enabled | 49 | // Wait videos propagation, server 2 has transcoding enabled |
51 | await wait(15000) | 50 | await waitJobs(servers) |
52 | 51 | ||
53 | const res = await getVideosList(servers[0].url) | 52 | const res = await getVideosList(servers[0].url) |
54 | const videos = res.body.data | 53 | const videos = res.body.data |
@@ -68,13 +67,13 @@ describe('Test video abuses', function () { | |||
68 | }) | 67 | }) |
69 | 68 | ||
70 | it('Should report abuse on a local video', async function () { | 69 | it('Should report abuse on a local video', async function () { |
71 | this.timeout(10000) | 70 | this.timeout(15000) |
72 | 71 | ||
73 | const reason = 'my super bad reason' | 72 | const reason = 'my super bad reason' |
74 | await reportVideoAbuse(servers[0].url, servers[0].accessToken, servers[0].video.id, reason) | 73 | await reportVideoAbuse(servers[0].url, servers[0].accessToken, servers[0].video.id, reason) |
75 | 74 | ||
76 | // We wait requests propagation, even if the server 1 is not supposed to make a request to server 2 | 75 | // We wait requests propagation, even if the server 1 is not supposed to make a request to server 2 |
77 | await wait(5000) | 76 | await waitJobs(servers) |
78 | }) | 77 | }) |
79 | 78 | ||
80 | it('Should have 1 video abuses on server 1 and 0 on server 2', async function () { | 79 | it('Should have 1 video abuses on server 1 and 0 on server 2', async function () { |
@@ -103,7 +102,7 @@ describe('Test video abuses', function () { | |||
103 | await reportVideoAbuse(servers[0].url, servers[0].accessToken, servers[1].video.id, reason) | 102 | await reportVideoAbuse(servers[0].url, servers[0].accessToken, servers[1].video.id, reason) |
104 | 103 | ||
105 | // We wait requests propagation | 104 | // We wait requests propagation |
106 | await wait(5000) | 105 | await waitJobs(servers) |
107 | }) | 106 | }) |
108 | 107 | ||
109 | it('Should have 2 video abuse on server 1 and 1 on server 2', async function () { | 108 | it('Should have 2 video abuse on server 1 and 1 on server 2', async function () { |
@@ -137,10 +136,5 @@ describe('Test video abuses', function () { | |||
137 | 136 | ||
138 | after(async function () { | 137 | after(async function () { |
139 | killallServers(servers) | 138 | killallServers(servers) |
140 | |||
141 | // Keep the logs if the test failed | ||
142 | if (this['ok']) { | ||
143 | await flushTests() | ||
144 | } | ||
145 | }) | 139 | }) |
146 | }) | 140 | }) |
diff --git a/server/tests/api/videos/video-blacklist-management.ts b/server/tests/api/videos/video-blacklist-management.ts index db79784c2..4d1a06436 100644 --- a/server/tests/api/videos/video-blacklist-management.ts +++ b/server/tests/api/videos/video-blacklist-management.ts | |||
@@ -6,7 +6,6 @@ import 'mocha' | |||
6 | import { | 6 | import { |
7 | addVideoToBlacklist, | 7 | addVideoToBlacklist, |
8 | flushAndRunMultipleServers, | 8 | flushAndRunMultipleServers, |
9 | flushTests, | ||
10 | getBlacklistedVideosList, | 9 | getBlacklistedVideosList, |
11 | getSortedBlacklistedVideosList, | 10 | getSortedBlacklistedVideosList, |
12 | getVideosList, | 11 | getVideosList, |
@@ -14,10 +13,10 @@ import { | |||
14 | removeVideoFromBlacklist, | 13 | removeVideoFromBlacklist, |
15 | ServerInfo, | 14 | ServerInfo, |
16 | setAccessTokensToServers, | 15 | setAccessTokensToServers, |
17 | uploadVideo, | 16 | uploadVideo |
18 | wait | ||
19 | } from '../../utils/index' | 17 | } from '../../utils/index' |
20 | import { doubleFollow } from '../../utils/server/follows' | 18 | import { doubleFollow } from '../../utils/server/follows' |
19 | import { waitJobs } from '../../utils/server/jobs' | ||
21 | 20 | ||
22 | const expect = chai.expect | 21 | const expect = chai.expect |
23 | const orderBy = lodash.orderBy | 22 | const orderBy = lodash.orderBy |
@@ -51,7 +50,7 @@ describe('Test video blacklist management', function () { | |||
51 | await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'My 2nd video', description: 'A video on server 2' }) | 50 | await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'My 2nd video', description: 'A video on server 2' }) |
52 | 51 | ||
53 | // Wait videos propagation, server 2 has transcoding enabled | 52 | // Wait videos propagation, server 2 has transcoding enabled |
54 | await wait(15000) | 53 | await waitJobs(servers) |
55 | 54 | ||
56 | // Blacklist the two videos on server 1 | 55 | // Blacklist the two videos on server 1 |
57 | await blacklistVideosOnServer(servers[0]) | 56 | await blacklistVideosOnServer(servers[0]) |
@@ -154,9 +153,5 @@ describe('Test video blacklist management', function () { | |||
154 | 153 | ||
155 | after(async function () { | 154 | after(async function () { |
156 | killallServers(servers) | 155 | killallServers(servers) |
157 | |||
158 | if (this['ok']) { | ||
159 | await flushTests() | ||
160 | } | ||
161 | }) | 156 | }) |
162 | }) | 157 | }) |
diff --git a/server/tests/api/videos/video-blacklist.ts b/server/tests/api/videos/video-blacklist.ts index d1cefa5d7..de4c68f1d 100644 --- a/server/tests/api/videos/video-blacklist.ts +++ b/server/tests/api/videos/video-blacklist.ts | |||
@@ -5,16 +5,15 @@ import 'mocha' | |||
5 | import { | 5 | import { |
6 | addVideoToBlacklist, | 6 | addVideoToBlacklist, |
7 | flushAndRunMultipleServers, | 7 | flushAndRunMultipleServers, |
8 | flushTests, | ||
9 | getVideosList, | 8 | getVideosList, |
10 | killallServers, | 9 | killallServers, |
11 | searchVideo, | 10 | searchVideo, |
12 | ServerInfo, | 11 | ServerInfo, |
13 | setAccessTokensToServers, | 12 | setAccessTokensToServers, |
14 | uploadVideo, | 13 | uploadVideo |
15 | wait | ||
16 | } from '../../utils/index' | 14 | } from '../../utils/index' |
17 | import { doubleFollow } from '../../utils/server/follows' | 15 | import { doubleFollow } from '../../utils/server/follows' |
16 | import { waitJobs } from '../../utils/server/jobs' | ||
18 | 17 | ||
19 | const expect = chai.expect | 18 | const expect = chai.expect |
20 | 19 | ||
@@ -41,7 +40,7 @@ describe('Test video blacklists', function () { | |||
41 | await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) | 40 | await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) |
42 | 41 | ||
43 | // Wait videos propagation, server 2 has transcoding enabled | 42 | // Wait videos propagation, server 2 has transcoding enabled |
44 | await wait(10000) | 43 | await waitJobs(servers) |
45 | 44 | ||
46 | const res = await getVideosList(servers[0].url) | 45 | const res = await getVideosList(servers[0].url) |
47 | const videos = res.body.data | 46 | const videos = res.body.data |
@@ -89,10 +88,5 @@ describe('Test video blacklists', function () { | |||
89 | 88 | ||
90 | after(async function () { | 89 | after(async function () { |
91 | killallServers(servers) | 90 | killallServers(servers) |
92 | |||
93 | // Keep the logs if the test failed | ||
94 | if (this['ok']) { | ||
95 | await flushTests() | ||
96 | } | ||
97 | }) | 91 | }) |
98 | }) | 92 | }) |
diff --git a/server/tests/api/videos/video-channels.ts b/server/tests/api/videos/video-channels.ts index 7ae505fd7..ad543e2d6 100644 --- a/server/tests/api/videos/video-channels.ts +++ b/server/tests/api/videos/video-channels.ts | |||
@@ -3,7 +3,7 @@ | |||
3 | import * as chai from 'chai' | 3 | import * as chai from 'chai' |
4 | import 'mocha' | 4 | import 'mocha' |
5 | import { User, Video } from '../../../../shared/index' | 5 | import { User, Video } from '../../../../shared/index' |
6 | import { doubleFollow, flushAndRunMultipleServers, getVideoChannelVideos, updateVideo, uploadVideo, wait } from '../../utils' | 6 | import { doubleFollow, flushAndRunMultipleServers, getVideoChannelVideos, updateVideo, uploadVideo } from '../../utils' |
7 | import { | 7 | import { |
8 | addVideoChannel, | 8 | addVideoChannel, |
9 | deleteVideoChannel, | 9 | deleteVideoChannel, |
@@ -17,6 +17,7 @@ import { | |||
17 | setAccessTokensToServers, | 17 | setAccessTokensToServers, |
18 | updateVideoChannel | 18 | updateVideoChannel |
19 | } from '../../utils/index' | 19 | } from '../../utils/index' |
20 | import { waitJobs } from '../../utils/server/jobs' | ||
20 | 21 | ||
21 | const expect = chai.expect | 22 | const expect = chai.expect |
22 | 23 | ||
@@ -49,7 +50,7 @@ describe('Test video channels', function () { | |||
49 | firstVideoChannelUUID = user.videoChannels[0].uuid | 50 | firstVideoChannelUUID = user.videoChannels[0].uuid |
50 | } | 51 | } |
51 | 52 | ||
52 | await wait(5000) | 53 | await waitJobs(servers) |
53 | }) | 54 | }) |
54 | 55 | ||
55 | it('Should have one video channel (created with root)', async () => { | 56 | it('Should have one video channel (created with root)', async () => { |
@@ -80,7 +81,7 @@ describe('Test video channels', function () { | |||
80 | videoUUID = res.body.video.uuid | 81 | videoUUID = res.body.video.uuid |
81 | } | 82 | } |
82 | 83 | ||
83 | await wait(3000) | 84 | await waitJobs(servers) |
84 | }) | 85 | }) |
85 | 86 | ||
86 | it('Should have two video channels when getting my information', async () => { | 87 | it('Should have two video channels when getting my information', async () => { |
@@ -142,7 +143,7 @@ describe('Test video channels', function () { | |||
142 | 143 | ||
143 | await updateVideoChannel(servers[0].url, servers[0].accessToken, secondVideoChannelId, videoChannelAttributes) | 144 | await updateVideoChannel(servers[0].url, servers[0].accessToken, secondVideoChannelId, videoChannelAttributes) |
144 | 145 | ||
145 | await wait(3000) | 146 | await waitJobs(servers) |
146 | }) | 147 | }) |
147 | 148 | ||
148 | it('Should have video channel updated', async function () { | 149 | it('Should have video channel updated', async function () { |
@@ -184,7 +185,7 @@ describe('Test video channels', function () { | |||
184 | 185 | ||
185 | await updateVideo(servers[0].url, servers[0].accessToken, videoUUID, { channelId: firstVideoChannelId }) | 186 | await updateVideo(servers[0].url, servers[0].accessToken, videoUUID, { channelId: firstVideoChannelId }) |
186 | 187 | ||
187 | await wait(5000) | 188 | await waitJobs(servers) |
188 | }) | 189 | }) |
189 | 190 | ||
190 | it('Should list the first video channel videos', async function () { | 191 | it('Should list the first video channel videos', async function () { |
@@ -219,10 +220,5 @@ describe('Test video channels', function () { | |||
219 | 220 | ||
220 | after(async function () { | 221 | after(async function () { |
221 | killallServers(servers) | 222 | killallServers(servers) |
222 | |||
223 | // Keep the logs if the test failed | ||
224 | if (this['ok']) { | ||
225 | await flushTests() | ||
226 | } | ||
227 | }) | 223 | }) |
228 | }) | 224 | }) |
diff --git a/server/tests/api/videos/video-comments.ts b/server/tests/api/videos/video-comments.ts index f83d95088..d6e07c5b3 100644 --- a/server/tests/api/videos/video-comments.ts +++ b/server/tests/api/videos/video-comments.ts | |||
@@ -5,11 +5,20 @@ import 'mocha' | |||
5 | import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model' | 5 | import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model' |
6 | import { testImage } from '../../utils' | 6 | import { testImage } from '../../utils' |
7 | import { | 7 | import { |
8 | dateIsValid, flushTests, killallServers, runServer, ServerInfo, setAccessTokensToServers, updateMyAvatar, | 8 | dateIsValid, |
9 | flushTests, | ||
10 | killallServers, | ||
11 | runServer, | ||
12 | ServerInfo, | ||
13 | setAccessTokensToServers, | ||
14 | updateMyAvatar, | ||
9 | uploadVideo | 15 | uploadVideo |
10 | } from '../../utils/index' | 16 | } from '../../utils/index' |
11 | import { | 17 | import { |
12 | addVideoCommentReply, addVideoCommentThread, deleteVideoComment, getVideoCommentThreads, | 18 | addVideoCommentReply, |
19 | addVideoCommentThread, | ||
20 | deleteVideoComment, | ||
21 | getVideoCommentThreads, | ||
13 | getVideoThreadComments | 22 | getVideoThreadComments |
14 | } from '../../utils/videos/video-comments' | 23 | } from '../../utils/videos/video-comments' |
15 | 24 | ||
@@ -194,10 +203,5 @@ describe('Test video comments', function () { | |||
194 | 203 | ||
195 | after(async function () { | 204 | after(async function () { |
196 | killallServers([ server ]) | 205 | killallServers([ server ]) |
197 | |||
198 | // Keep the logs if the test failed | ||
199 | if (this['ok']) { | ||
200 | await flushTests() | ||
201 | } | ||
202 | }) | 206 | }) |
203 | }) | 207 | }) |
diff --git a/server/tests/api/videos/video-description.ts b/server/tests/api/videos/video-description.ts index c2985194c..dd5cd78c0 100644 --- a/server/tests/api/videos/video-description.ts +++ b/server/tests/api/videos/video-description.ts | |||
@@ -4,7 +4,6 @@ import * as chai from 'chai' | |||
4 | import 'mocha' | 4 | import 'mocha' |
5 | import { | 5 | import { |
6 | flushAndRunMultipleServers, | 6 | flushAndRunMultipleServers, |
7 | flushTests, | ||
8 | getVideo, | 7 | getVideo, |
9 | getVideoDescription, | 8 | getVideoDescription, |
10 | getVideosList, | 9 | getVideosList, |
@@ -12,10 +11,10 @@ import { | |||
12 | ServerInfo, | 11 | ServerInfo, |
13 | setAccessTokensToServers, | 12 | setAccessTokensToServers, |
14 | updateVideo, | 13 | updateVideo, |
15 | uploadVideo, | 14 | uploadVideo |
16 | wait | ||
17 | } from '../../utils/index' | 15 | } from '../../utils/index' |
18 | import { doubleFollow } from '../../utils/server/follows' | 16 | import { doubleFollow } from '../../utils/server/follows' |
17 | import { waitJobs } from '../../utils/server/jobs' | ||
19 | 18 | ||
20 | const expect = chai.expect | 19 | const expect = chai.expect |
21 | 20 | ||
@@ -46,7 +45,7 @@ describe('Test video description', function () { | |||
46 | } | 45 | } |
47 | await uploadVideo(servers[0].url, servers[0].accessToken, attributes) | 46 | await uploadVideo(servers[0].url, servers[0].accessToken, attributes) |
48 | 47 | ||
49 | await wait(5000) | 48 | await waitJobs(servers) |
50 | 49 | ||
51 | const res = await getVideosList(servers[0].url) | 50 | const res = await getVideosList(servers[0].url) |
52 | 51 | ||
@@ -85,7 +84,7 @@ describe('Test video description', function () { | |||
85 | } | 84 | } |
86 | await updateVideo(servers[0].url, servers[0].accessToken, videoId, attributes) | 85 | await updateVideo(servers[0].url, servers[0].accessToken, videoId, attributes) |
87 | 86 | ||
88 | await wait(5000) | 87 | await waitJobs(servers) |
89 | }) | 88 | }) |
90 | 89 | ||
91 | it('Should have a small description on each server', async function () { | 90 | it('Should have a small description on each server', async function () { |
@@ -102,10 +101,5 @@ describe('Test video description', function () { | |||
102 | 101 | ||
103 | after(async function () { | 102 | after(async function () { |
104 | killallServers(servers) | 103 | killallServers(servers) |
105 | |||
106 | // Keep the logs if the test failed | ||
107 | if (this['ok']) { | ||
108 | await flushTests() | ||
109 | } | ||
110 | }) | 104 | }) |
111 | }) | 105 | }) |
diff --git a/server/tests/api/videos/video-nsfw.ts b/server/tests/api/videos/video-nsfw.ts index a8f152561..6af0ca8af 100644 --- a/server/tests/api/videos/video-nsfw.ts +++ b/server/tests/api/videos/video-nsfw.ts | |||
@@ -8,12 +8,15 @@ import { createUser } from '../../utils/users/users' | |||
8 | import { getMyVideos } from '../../utils/videos/videos' | 8 | import { getMyVideos } from '../../utils/videos/videos' |
9 | import { | 9 | import { |
10 | getAccountVideos, | 10 | getAccountVideos, |
11 | getConfig, getCustomConfig, | 11 | getConfig, |
12 | getMyUserInformation, getVideoChannelVideos, | 12 | getCustomConfig, |
13 | getMyUserInformation, | ||
14 | getVideoChannelVideos, | ||
13 | getVideosListWithToken, | 15 | getVideosListWithToken, |
14 | runServer, | 16 | runServer, |
15 | searchVideo, | 17 | searchVideo, |
16 | searchVideoWithToken, updateCustomConfig, | 18 | searchVideoWithToken, |
19 | updateCustomConfig, | ||
17 | updateMyUser | 20 | updateMyUser |
18 | } from '../../utils' | 21 | } from '../../utils' |
19 | import { ServerConfig } from '../../../../shared/models' | 22 | import { ServerConfig } from '../../../../shared/models' |
@@ -201,10 +204,5 @@ describe('Test video NSFW policy', function () { | |||
201 | 204 | ||
202 | after(async function () { | 205 | after(async function () { |
203 | killallServers([ server ]) | 206 | killallServers([ server ]) |
204 | |||
205 | // Keep the logs if the test failed | ||
206 | if (this['ok']) { | ||
207 | await flushTests() | ||
208 | } | ||
209 | }) | 207 | }) |
210 | }) | 208 | }) |
diff --git a/server/tests/api/videos/video-privacy.ts b/server/tests/api/videos/video-privacy.ts index ea435d5af..9fefca7e3 100644 --- a/server/tests/api/videos/video-privacy.ts +++ b/server/tests/api/videos/video-privacy.ts | |||
@@ -5,18 +5,17 @@ import 'mocha' | |||
5 | import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum' | 5 | import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum' |
6 | import { | 6 | import { |
7 | flushAndRunMultipleServers, | 7 | flushAndRunMultipleServers, |
8 | flushTests, | ||
9 | getVideosList, | 8 | getVideosList, |
10 | killallServers, | 9 | killallServers, |
11 | ServerInfo, | 10 | ServerInfo, |
12 | setAccessTokensToServers, | 11 | setAccessTokensToServers, |
13 | uploadVideo, | 12 | uploadVideo |
14 | wait | ||
15 | } from '../../utils/index' | 13 | } from '../../utils/index' |
16 | import { doubleFollow } from '../../utils/server/follows' | 14 | import { doubleFollow } from '../../utils/server/follows' |
17 | import { userLogin } from '../../utils/users/login' | 15 | import { userLogin } from '../../utils/users/login' |
18 | import { createUser } from '../../utils/users/users' | 16 | import { createUser } from '../../utils/users/users' |
19 | import { getMyVideos, getVideo, getVideoWithToken, updateVideo } from '../../utils/videos/videos' | 17 | import { getMyVideos, getVideo, getVideoWithToken, updateVideo } from '../../utils/videos/videos' |
18 | import { waitJobs } from '../../utils/server/jobs' | ||
20 | 19 | ||
21 | const expect = chai.expect | 20 | const expect = chai.expect |
22 | 21 | ||
@@ -48,7 +47,7 @@ describe('Test video privacy', function () { | |||
48 | } | 47 | } |
49 | await uploadVideo(servers[0].url, servers[0].accessToken, attributes) | 48 | await uploadVideo(servers[0].url, servers[0].accessToken, attributes) |
50 | 49 | ||
51 | await wait(5000) | 50 | await waitJobs(servers) |
52 | }) | 51 | }) |
53 | 52 | ||
54 | it('Should not have this private video on server 2', async function () { | 53 | it('Should not have this private video on server 2', async function () { |
@@ -99,7 +98,7 @@ describe('Test video privacy', function () { | |||
99 | await uploadVideo(servers[1].url, servers[1].accessToken, attributes) | 98 | await uploadVideo(servers[1].url, servers[1].accessToken, attributes) |
100 | 99 | ||
101 | // Server 2 has transcoding enabled | 100 | // Server 2 has transcoding enabled |
102 | await wait(10000) | 101 | await waitJobs(servers) |
103 | }) | 102 | }) |
104 | 103 | ||
105 | it('Should not have this unlisted video listed on server 1 and 2', async function () { | 104 | it('Should not have this unlisted video listed on server 1 and 2', async function () { |
@@ -139,7 +138,7 @@ describe('Test video privacy', function () { | |||
139 | now = Date.now() | 138 | now = Date.now() |
140 | await updateVideo(servers[0].url, servers[0].accessToken, privateVideoId, attribute) | 139 | await updateVideo(servers[0].url, servers[0].accessToken, privateVideoId, attribute) |
141 | 140 | ||
142 | await wait(5000) | 141 | await waitJobs(servers) |
143 | }) | 142 | }) |
144 | 143 | ||
145 | it('Should have this new public video listed on server 1 and 2', async function () { | 144 | it('Should have this new public video listed on server 1 and 2', async function () { |
@@ -155,10 +154,5 @@ describe('Test video privacy', function () { | |||
155 | 154 | ||
156 | after(async function () { | 155 | after(async function () { |
157 | killallServers(servers) | 156 | killallServers(servers) |
158 | |||
159 | // Keep the logs if the test failed | ||
160 | if (this['ok']) { | ||
161 | await flushTests() | ||
162 | } | ||
163 | }) | 157 | }) |
164 | }) | 158 | }) |
diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts index 1eace6491..2b203c26b 100644 --- a/server/tests/api/videos/video-transcoder.ts +++ b/server/tests/api/videos/video-transcoder.ts | |||
@@ -7,7 +7,6 @@ import { getVideoFileFPS } from '../../../helpers/ffmpeg-utils' | |||
7 | import { | 7 | import { |
8 | doubleFollow, | 8 | doubleFollow, |
9 | flushAndRunMultipleServers, | 9 | flushAndRunMultipleServers, |
10 | flushTests, | ||
11 | getMyVideos, | 10 | getMyVideos, |
12 | getVideo, | 11 | getVideo, |
13 | getVideosList, | 12 | getVideosList, |
@@ -16,10 +15,10 @@ import { | |||
16 | ServerInfo, | 15 | ServerInfo, |
17 | setAccessTokensToServers, | 16 | setAccessTokensToServers, |
18 | uploadVideo, | 17 | uploadVideo, |
19 | wait, | ||
20 | webtorrentAdd | 18 | webtorrentAdd |
21 | } from '../../utils' | 19 | } from '../../utils' |
22 | import { join } from 'path' | 20 | import { join } from 'path' |
21 | import { waitJobs } from '../../utils/server/jobs' | ||
23 | 22 | ||
24 | const expect = chai.expect | 23 | const expect = chai.expect |
25 | 24 | ||
@@ -45,7 +44,7 @@ describe('Test video transcoding', function () { | |||
45 | } | 44 | } |
46 | await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) | 45 | await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes) |
47 | 46 | ||
48 | await wait(10000) | 47 | await waitJobs(servers) |
49 | 48 | ||
50 | const res = await getVideosList(servers[0].url) | 49 | const res = await getVideosList(servers[0].url) |
51 | const video = res.body.data[0] | 50 | const video = res.body.data[0] |
@@ -73,7 +72,7 @@ describe('Test video transcoding', function () { | |||
73 | } | 72 | } |
74 | await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) | 73 | await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) |
75 | 74 | ||
76 | await wait(20000) | 75 | await waitJobs(servers) |
77 | 76 | ||
78 | const res = await getVideosList(servers[1].url) | 77 | const res = await getVideosList(servers[1].url) |
79 | 78 | ||
@@ -102,7 +101,7 @@ describe('Test video transcoding', function () { | |||
102 | } | 101 | } |
103 | await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) | 102 | await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) |
104 | 103 | ||
105 | await wait(20000) | 104 | await waitJobs(servers) |
106 | 105 | ||
107 | const res = await getVideosList(servers[1].url) | 106 | const res = await getVideosList(servers[1].url) |
108 | 107 | ||
@@ -125,7 +124,7 @@ describe('Test video transcoding', function () { | |||
125 | 124 | ||
126 | await doubleFollow(servers[0], servers[1]) | 125 | await doubleFollow(servers[0], servers[1]) |
127 | 126 | ||
128 | await wait(15000) | 127 | await waitJobs(servers) |
129 | 128 | ||
130 | { | 129 | { |
131 | // Upload the video, but wait transcoding | 130 | // Upload the video, but wait transcoding |
@@ -161,7 +160,7 @@ describe('Test video transcoding', function () { | |||
161 | await getVideo(servers[0].url, videoId, 404) | 160 | await getVideo(servers[0].url, videoId, 404) |
162 | } | 161 | } |
163 | 162 | ||
164 | await wait(30000) | 163 | await waitJobs(servers) |
165 | 164 | ||
166 | for (const server of servers) { | 165 | for (const server of servers) { |
167 | const res = await getVideosList(server.url) | 166 | const res = await getVideosList(server.url) |
@@ -179,10 +178,5 @@ describe('Test video transcoding', function () { | |||
179 | 178 | ||
180 | after(async function () { | 179 | after(async function () { |
181 | killallServers(servers) | 180 | killallServers(servers) |
182 | |||
183 | // Keep the logs if the test failed | ||
184 | if (this['ok']) { | ||
185 | await flushTests() | ||
186 | } | ||
187 | }) | 181 | }) |
188 | }) | 182 | }) |
diff --git a/server/tests/cli/create-import-video-file-job.ts b/server/tests/cli/create-import-video-file-job.ts index 1472e60f6..13bcfd209 100644 --- a/server/tests/cli/create-import-video-file-job.ts +++ b/server/tests/cli/create-import-video-file-job.ts | |||
@@ -14,9 +14,9 @@ import { | |||
14 | killallServers, | 14 | killallServers, |
15 | ServerInfo, | 15 | ServerInfo, |
16 | setAccessTokensToServers, | 16 | setAccessTokensToServers, |
17 | uploadVideo, | 17 | uploadVideo |
18 | wait | ||
19 | } from '../utils' | 18 | } from '../utils' |
19 | import { waitJobs } from '../utils/server/jobs' | ||
20 | 20 | ||
21 | const expect = chai.expect | 21 | const expect = chai.expect |
22 | 22 | ||
@@ -54,14 +54,14 @@ describe('Test create import video jobs', function () { | |||
54 | video2UUID = res2.body.video.uuid | 54 | video2UUID = res2.body.video.uuid |
55 | 55 | ||
56 | // Transcoding | 56 | // Transcoding |
57 | await wait(40000) | 57 | await waitJobs(servers) |
58 | }) | 58 | }) |
59 | 59 | ||
60 | it('Should run a import job on video 1 with a lower resolution', async function () { | 60 | it('Should run a import job on video 1 with a lower resolution', async function () { |
61 | const env = getEnvCli(servers[0]) | 61 | const env = getEnvCli(servers[0]) |
62 | await execCLI(`${env} npm run create-import-video-file-job -- -v ${video1UUID} -i server/tests/fixtures/video_short-480.webm`) | 62 | await execCLI(`${env} npm run create-import-video-file-job -- -v ${video1UUID} -i server/tests/fixtures/video_short-480.webm`) |
63 | 63 | ||
64 | await wait(30000) | 64 | await waitJobs(servers) |
65 | 65 | ||
66 | let magnetUri: string | 66 | let magnetUri: string |
67 | for (const server of servers) { | 67 | for (const server of servers) { |
@@ -85,7 +85,7 @@ describe('Test create import video jobs', function () { | |||
85 | const env = getEnvCli(servers[1]) | 85 | const env = getEnvCli(servers[1]) |
86 | await execCLI(`${env} npm run create-import-video-file-job -- -v ${video2UUID} -i server/tests/fixtures/video_short.ogv`) | 86 | await execCLI(`${env} npm run create-import-video-file-job -- -v ${video2UUID} -i server/tests/fixtures/video_short.ogv`) |
87 | 87 | ||
88 | await wait(30000) | 88 | await waitJobs(servers) |
89 | 89 | ||
90 | let magnetUri: string | 90 | let magnetUri: string |
91 | for (const server of servers) { | 91 | for (const server of servers) { |
@@ -111,7 +111,7 @@ describe('Test create import video jobs', function () { | |||
111 | const env = getEnvCli(servers[0]) | 111 | const env = getEnvCli(servers[0]) |
112 | await execCLI(`${env} npm run create-import-video-file-job -- -v ${video1UUID} -i server/tests/fixtures/video_short2.webm`) | 112 | await execCLI(`${env} npm run create-import-video-file-job -- -v ${video1UUID} -i server/tests/fixtures/video_short2.webm`) |
113 | 113 | ||
114 | await wait(30000) | 114 | await waitJobs(servers) |
115 | 115 | ||
116 | let magnetUri: string | 116 | let magnetUri: string |
117 | for (const server of servers) { | 117 | for (const server of servers) { |
@@ -133,10 +133,5 @@ describe('Test create import video jobs', function () { | |||
133 | 133 | ||
134 | after(async function () { | 134 | after(async function () { |
135 | killallServers(servers) | 135 | killallServers(servers) |
136 | |||
137 | // Keep the logs if the test failed | ||
138 | if (this['ok']) { | ||
139 | await flushTests() | ||
140 | } | ||
141 | }) | 136 | }) |
142 | }) | 137 | }) |
diff --git a/server/tests/cli/create-transcoding-job.ts b/server/tests/cli/create-transcoding-job.ts index fe1c0c03d..e7c36f9c6 100644 --- a/server/tests/cli/create-transcoding-job.ts +++ b/server/tests/cli/create-transcoding-job.ts | |||
@@ -3,22 +3,22 @@ | |||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { VideoDetails } from '../../../shared/models/videos' | 5 | import { VideoDetails } from '../../../shared/models/videos' |
6 | const expect = chai.expect | ||
7 | |||
8 | import { | 6 | import { |
7 | doubleFollow, | ||
9 | execCLI, | 8 | execCLI, |
9 | flushAndRunMultipleServers, | ||
10 | flushTests, | 10 | flushTests, |
11 | getEnvCli, | 11 | getEnvCli, |
12 | getVideo, | ||
12 | getVideosList, | 13 | getVideosList, |
13 | killallServers, | 14 | killallServers, |
14 | parseTorrentVideo, | ||
15 | runServer, | ||
16 | ServerInfo, | 15 | ServerInfo, |
17 | setAccessTokensToServers, | 16 | setAccessTokensToServers, |
18 | uploadVideo, | 17 | uploadVideo, wait |
19 | wait, | ||
20 | getVideo, flushAndRunMultipleServers, doubleFollow | ||
21 | } from '../utils' | 18 | } from '../utils' |
19 | import { waitJobs } from '../utils/server/jobs' | ||
20 | |||
21 | const expect = chai.expect | ||
22 | 22 | ||
23 | describe('Test create transcoding jobs', function () { | 23 | describe('Test create transcoding jobs', function () { |
24 | let servers: ServerInfo[] = [] | 24 | let servers: ServerInfo[] = [] |
@@ -40,7 +40,7 @@ describe('Test create transcoding jobs', function () { | |||
40 | const res = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'video2' }) | 40 | const res = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'video2' }) |
41 | video2UUID = res.body.video.uuid | 41 | video2UUID = res.body.video.uuid |
42 | 42 | ||
43 | await wait(3000) | 43 | await waitJobs(servers) |
44 | }) | 44 | }) |
45 | 45 | ||
46 | it('Should have two video files on each server', async function () { | 46 | it('Should have two video files on each server', async function () { |
@@ -65,7 +65,7 @@ describe('Test create transcoding jobs', function () { | |||
65 | const env = getEnvCli(servers[0]) | 65 | const env = getEnvCli(servers[0]) |
66 | await execCLI(`${env} npm run create-transcoding-job -- -v ${video2UUID}`) | 66 | await execCLI(`${env} npm run create-transcoding-job -- -v ${video2UUID}`) |
67 | 67 | ||
68 | await wait(40000) | 68 | await waitJobs(servers) |
69 | 69 | ||
70 | for (const server of servers) { | 70 | for (const server of servers) { |
71 | const res = await getVideosList(server.url) | 71 | const res = await getVideosList(server.url) |
@@ -102,10 +102,5 @@ describe('Test create transcoding jobs', function () { | |||
102 | 102 | ||
103 | after(async function () { | 103 | after(async function () { |
104 | killallServers(servers) | 104 | killallServers(servers) |
105 | |||
106 | // Keep the logs if the test failed | ||
107 | if (this['ok']) { | ||
108 | await flushTests() | ||
109 | } | ||
110 | }) | 105 | }) |
111 | }) | 106 | }) |
diff --git a/server/tests/cli/reset-password.ts b/server/tests/cli/reset-password.ts index 98ea7d456..bf937d1c0 100644 --- a/server/tests/cli/reset-password.ts +++ b/server/tests/cli/reset-password.ts | |||
@@ -36,10 +36,5 @@ describe('Test reset password scripts', function () { | |||
36 | 36 | ||
37 | after(async function () { | 37 | after(async function () { |
38 | killallServers([ server ]) | 38 | killallServers([ server ]) |
39 | |||
40 | // Keep the logs if the test failed | ||
41 | if (this['ok']) { | ||
42 | await flushTests() | ||
43 | } | ||
44 | }) | 39 | }) |
45 | }) | 40 | }) |
diff --git a/server/tests/cli/update-host.ts b/server/tests/cli/update-host.ts index ad56f7b1b..d0c6d2042 100644 --- a/server/tests/cli/update-host.ts +++ b/server/tests/cli/update-host.ts | |||
@@ -3,22 +3,22 @@ | |||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { VideoDetails } from '../../../shared/models/videos' | 5 | import { VideoDetails } from '../../../shared/models/videos' |
6 | const expect = chai.expect | ||
7 | |||
8 | import { | 6 | import { |
9 | execCLI, | 7 | execCLI, |
10 | flushTests, | 8 | flushTests, |
11 | getEnvCli, | 9 | getEnvCli, |
10 | getVideo, | ||
12 | getVideosList, | 11 | getVideosList, |
13 | killallServers, | 12 | killallServers, |
14 | parseTorrentVideo, | 13 | parseTorrentVideo, |
15 | runServer, | 14 | runServer, |
16 | ServerInfo, | 15 | ServerInfo, |
17 | setAccessTokensToServers, | 16 | setAccessTokensToServers, |
18 | uploadVideo, | 17 | uploadVideo |
19 | wait, | ||
20 | getVideo | ||
21 | } from '../utils' | 18 | } from '../utils' |
19 | import { waitJobs } from '../utils/server/jobs' | ||
20 | |||
21 | const expect = chai.expect | ||
22 | 22 | ||
23 | describe('Test update host scripts', function () { | 23 | describe('Test update host scripts', function () { |
24 | let server: ServerInfo | 24 | let server: ServerInfo |
@@ -41,7 +41,8 @@ describe('Test update host scripts', function () { | |||
41 | const videoAttributes = {} | 41 | const videoAttributes = {} |
42 | await uploadVideo(server.url, server.accessToken, videoAttributes) | 42 | await uploadVideo(server.url, server.accessToken, videoAttributes) |
43 | await uploadVideo(server.url, server.accessToken, videoAttributes) | 43 | await uploadVideo(server.url, server.accessToken, videoAttributes) |
44 | await wait(30000) | 44 | |
45 | await waitJobs(server) | ||
45 | }) | 46 | }) |
46 | 47 | ||
47 | it('Should update torrent hosts', async function () { | 48 | it('Should update torrent hosts', async function () { |
@@ -82,10 +83,5 @@ describe('Test update host scripts', function () { | |||
82 | 83 | ||
83 | after(async function () { | 84 | after(async function () { |
84 | killallServers([ server ]) | 85 | killallServers([ server ]) |
85 | |||
86 | // Keep the logs if the test failed | ||
87 | if (this['ok']) { | ||
88 | await flushTests() | ||
89 | } | ||
90 | }) | 86 | }) |
91 | }) | 87 | }) |
diff --git a/server/tests/client.ts b/server/tests/client.ts index 2adb39c5e..687655452 100644 --- a/server/tests/client.ts +++ b/server/tests/client.ts | |||
@@ -11,7 +11,7 @@ import { | |||
11 | runServer, | 11 | runServer, |
12 | serverLogin, | 12 | serverLogin, |
13 | uploadVideo, | 13 | uploadVideo, |
14 | getVideosList, updateCustomConfig, getCustomConfig | 14 | getVideosList, updateCustomConfig, getCustomConfig, killallServers |
15 | } from './utils' | 15 | } from './utils' |
16 | 16 | ||
17 | describe('Test a client controllers', function () { | 17 | describe('Test a client controllers', function () { |
@@ -102,11 +102,6 @@ describe('Test a client controllers', function () { | |||
102 | }) | 102 | }) |
103 | 103 | ||
104 | after(async function () { | 104 | after(async function () { |
105 | process.kill(-server.app.pid) | 105 | killallServers([ server ]) |
106 | |||
107 | // Keep the logs if the test failed | ||
108 | if (this['ok']) { | ||
109 | await flushTests() | ||
110 | } | ||
111 | }) | 106 | }) |
112 | }) | 107 | }) |
diff --git a/server/tests/feeds/feeds.ts b/server/tests/feeds/feeds.ts index f65148f00..90450a0bb 100644 --- a/server/tests/feeds/feeds.ts +++ b/server/tests/feeds/feeds.ts | |||
@@ -11,12 +11,12 @@ import { | |||
11 | killallServers, | 11 | killallServers, |
12 | ServerInfo, | 12 | ServerInfo, |
13 | setAccessTokensToServers, | 13 | setAccessTokensToServers, |
14 | uploadVideo, | 14 | uploadVideo |
15 | wait | ||
16 | } from '../utils' | 15 | } from '../utils' |
17 | import { join } from 'path' | 16 | import { join } from 'path' |
18 | import * as libxmljs from 'libxmljs' | 17 | import * as libxmljs from 'libxmljs' |
19 | import { addVideoCommentThread } from '../utils/videos/video-comments' | 18 | import { addVideoCommentThread } from '../utils/videos/video-comments' |
19 | import { waitJobs } from '../utils/server/jobs' | ||
20 | 20 | ||
21 | chai.use(require('chai-xml')) | 21 | chai.use(require('chai-xml')) |
22 | chai.use(require('chai-json-schema')) | 22 | chai.use(require('chai-json-schema')) |
@@ -46,7 +46,7 @@ describe('Test syndication feeds', () => { | |||
46 | await addVideoCommentThread(servers[0].url, servers[0].accessToken, videoId, 'super comment 1') | 46 | await addVideoCommentThread(servers[0].url, servers[0].accessToken, videoId, 'super comment 1') |
47 | await addVideoCommentThread(servers[0].url, servers[0].accessToken, videoId, 'super comment 2') | 47 | await addVideoCommentThread(servers[0].url, servers[0].accessToken, videoId, 'super comment 2') |
48 | 48 | ||
49 | await wait(10000) | 49 | await waitJobs(servers) |
50 | }) | 50 | }) |
51 | 51 | ||
52 | describe('All feed', function () { | 52 | describe('All feed', function () { |
diff --git a/server/tests/utils/miscs/miscs.ts b/server/tests/utils/miscs/miscs.ts index 5e46004a7..7ac60a983 100644 --- a/server/tests/utils/miscs/miscs.ts +++ b/server/tests/utils/miscs/miscs.ts | |||
@@ -5,6 +5,7 @@ import { isAbsolute, join } from 'path' | |||
5 | import * as request from 'supertest' | 5 | import * as request from 'supertest' |
6 | import * as WebTorrent from 'webtorrent' | 6 | import * as WebTorrent from 'webtorrent' |
7 | import { readFileBufferPromise } from '../../../helpers/core-utils' | 7 | import { readFileBufferPromise } from '../../../helpers/core-utils' |
8 | import { ServerInfo } from '..' | ||
8 | 9 | ||
9 | const expect = chai.expect | 10 | const expect = chai.expect |
10 | let webtorrent = new WebTorrent() | 11 | let webtorrent = new WebTorrent() |
diff --git a/server/tests/utils/server/follows.ts b/server/tests/utils/server/follows.ts index 82e89175c..d21fb5e58 100644 --- a/server/tests/utils/server/follows.ts +++ b/server/tests/utils/server/follows.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import * as request from 'supertest' | 1 | import * as request from 'supertest' |
2 | import { wait } from '../miscs/miscs' | 2 | import { wait } from '../miscs/miscs' |
3 | import { ServerInfo } from './servers' | 3 | import { ServerInfo } from './servers' |
4 | import { waitJobs } from './jobs' | ||
4 | 5 | ||
5 | function getFollowersListPaginationAndSort (url: string, start: number, count: number, sort: string) { | 6 | function getFollowersListPaginationAndSort (url: string, start: number, count: number, sort: string) { |
6 | const path = '/api/v1/server/followers' | 7 | const path = '/api/v1/server/followers' |
@@ -61,7 +62,7 @@ async function doubleFollow (server1: ServerInfo, server2: ServerInfo) { | |||
61 | ]) | 62 | ]) |
62 | 63 | ||
63 | // Wait request propagation | 64 | // Wait request propagation |
64 | await wait(10000) | 65 | await waitJobs([ server1, server2 ]) |
65 | 66 | ||
66 | return true | 67 | return true |
67 | } | 68 | } |
diff --git a/server/tests/utils/server/jobs.ts b/server/tests/utils/server/jobs.ts index 4053dd40b..375e76f93 100644 --- a/server/tests/utils/server/jobs.ts +++ b/server/tests/utils/server/jobs.ts | |||
@@ -1,5 +1,6 @@ | |||
1 | import * as request from 'supertest' | 1 | import * as request from 'supertest' |
2 | import { JobState } from '../../../../shared/models' | 2 | import { JobState } from '../../../../shared/models' |
3 | import { ServerInfo, wait } from '../index' | ||
3 | 4 | ||
4 | function getJobsList (url: string, accessToken: string, state: JobState) { | 5 | function getJobsList (url: string, accessToken: string, state: JobState) { |
5 | const path = '/api/v1/jobs/' + state | 6 | const path = '/api/v1/jobs/' + state |
@@ -26,9 +27,49 @@ function getJobsListPaginationAndSort (url: string, accessToken: string, state: | |||
26 | .expect('Content-Type', /json/) | 27 | .expect('Content-Type', /json/) |
27 | } | 28 | } |
28 | 29 | ||
30 | async function waitJobs (serversArg: ServerInfo[] | ServerInfo) { | ||
31 | let servers: ServerInfo[] | ||
32 | |||
33 | if (Array.isArray(serversArg) === false) servers = [ serversArg as ServerInfo ] | ||
34 | else servers = serversArg as ServerInfo[] | ||
35 | |||
36 | const states: JobState[] = [ 'inactive', 'active', 'delayed' ] | ||
37 | const tasks: Promise<any>[] = [] | ||
38 | let pendingRequests: boolean | ||
39 | |||
40 | do { | ||
41 | pendingRequests = false | ||
42 | |||
43 | // Check if each server has pending request | ||
44 | for (const server of servers) { | ||
45 | for (const state of states) { | ||
46 | const p = getJobsListPaginationAndSort(server.url, server.accessToken, state, 0, 10, '-createdAt') | ||
47 | .then(res => { | ||
48 | if (res.body.total > 0) pendingRequests = true | ||
49 | }) | ||
50 | tasks.push(p) | ||
51 | } | ||
52 | } | ||
53 | |||
54 | await Promise.all(tasks) | ||
55 | |||
56 | // Retry, in case of new jobs were created | ||
57 | if (pendingRequests === false) { | ||
58 | await wait(1000) | ||
59 | |||
60 | await Promise.all(tasks) | ||
61 | } | ||
62 | |||
63 | if (pendingRequests) { | ||
64 | await wait(1000) | ||
65 | } | ||
66 | } while (pendingRequests) | ||
67 | } | ||
68 | |||
29 | // --------------------------------------------------------------------------- | 69 | // --------------------------------------------------------------------------- |
30 | 70 | ||
31 | export { | 71 | export { |
32 | getJobsList, | 72 | getJobsList, |
73 | waitJobs, | ||
33 | getJobsListPaginationAndSort | 74 | getJobsListPaginationAndSort |
34 | } | 75 | } |