From 7c3b79768bd174b22154e8d2df0b1211e01ee56a Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 24 Apr 2019 15:10:37 +0200 Subject: [PATCH] Use test wrapper exit function --- .travis.yml | 2 +- server/tests/api/check-params/config.ts | 8 +-- server/tests/api/check-params/contact-form.ts | 14 +++-- server/tests/api/check-params/debug.ts | 6 +- server/tests/api/check-params/follows.ts | 12 +++- server/tests/api/check-params/jobs.ts | 7 ++- server/tests/api/check-params/logs.ts | 7 ++- server/tests/api/check-params/redundancy.ts | 13 ++-- server/tests/api/check-params/search.ts | 6 +- server/tests/api/check-params/services.ts | 25 ++++---- .../api/check-params/user-notifications.ts | 15 +++-- .../api/check-params/user-subscriptions.ts | 27 ++++----- server/tests/api/check-params/users.ts | 8 +-- server/tests/api/check-params/video-abuses.ts | 9 ++- .../tests/api/check-params/video-blacklist.ts | 5 +- .../tests/api/check-params/video-captions.ts | 9 ++- .../tests/api/check-params/video-channels.ts | 12 ++-- .../tests/api/check-params/video-comments.ts | 6 +- .../tests/api/check-params/video-imports.ts | 9 ++- .../tests/api/check-params/video-playlists.ts | 12 ++-- .../tests/api/check-params/videos-filter.ts | 12 ++-- .../tests/api/check-params/videos-history.ts | 9 ++- server/tests/api/check-params/videos.ts | 60 +++++++++++-------- .../api/notifications/user-notifications.ts | 6 +- server/tests/api/redundancy/redundancy.ts | 38 ++++++------ .../search-activitypub-video-channels.ts | 6 +- .../api/search/search-activitypub-videos.ts | 6 +- server/tests/api/search/search-videos.ts | 7 ++- server/tests/api/server/config.ts | 12 ++-- server/tests/api/server/contact-form.ts | 15 ++++- server/tests/api/server/email.ts | 7 ++- server/tests/api/server/follow-constraints.ts | 6 +- server/tests/api/server/follows-moderation.ts | 6 +- server/tests/api/server/follows.ts | 6 +- server/tests/api/server/handle-down.ts | 5 +- server/tests/api/server/jobs.ts | 6 +- server/tests/api/server/logs.ts | 13 +++- server/tests/api/server/no-client.ts | 12 ++-- server/tests/api/server/reverse-proxy.ts | 28 ++------- server/tests/api/server/stats.ts | 5 +- server/tests/api/server/tracker.ts | 16 +++-- server/tests/api/users/blocklist.ts | 5 +- server/tests/api/users/user-subscriptions.ts | 5 +- .../tests/api/users/users-multiple-servers.ts | 6 +- server/tests/api/users/users-verification.ts | 7 ++- server/tests/api/users/users.ts | 9 ++- server/tests/api/videos/multiple-servers.ts | 6 +- server/tests/api/videos/services.ts | 16 ++--- server/tests/api/videos/single-server.ts | 9 ++- server/tests/api/videos/video-abuse.ts | 5 +- server/tests/api/videos/video-blacklist.ts | 6 +- server/tests/api/videos/video-captions.ts | 6 +- .../api/videos/video-change-ownership.ts | 6 +- server/tests/api/videos/video-channels.ts | 5 +- server/tests/api/videos/video-comments.ts | 8 +-- server/tests/api/videos/video-description.ts | 5 +- server/tests/api/videos/video-hls.ts | 6 +- server/tests/api/videos/video-imports.ts | 5 +- server/tests/api/videos/video-nsfw.ts | 15 ++--- server/tests/api/videos/video-playlists.ts | 6 +- server/tests/api/videos/video-privacy.ts | 5 +- .../tests/api/videos/video-schedule-update.ts | 5 +- server/tests/api/videos/video-transcoder.ts | 6 +- server/tests/api/videos/videos-filter.ts | 5 +- server/tests/api/videos/videos-history.ts | 11 ++-- server/tests/api/videos/videos-overview.ts | 6 +- .../tests/api/videos/videos-views-cleaner.ts | 6 +- .../tests/cli/create-import-video-file-job.ts | 5 +- server/tests/cli/create-transcoding-job.ts | 5 +- server/tests/cli/optimize-old-videos.ts | 5 +- server/tests/cli/peertube.ts | 4 +- server/tests/cli/reset-password.ts | 9 ++- server/tests/cli/update-host.ts | 12 ++-- server/tests/client.ts | 9 ++- server/tests/feeds/feeds.ts | 5 +- server/tests/misc-endpoints.ts | 9 ++- shared/core-utils/miscs/miscs.ts | 7 +++ .../extra-utils/miscs/email-child-process.js | 2 +- shared/extra-utils/miscs/email.ts | 12 ++-- shared/extra-utils/server/servers.ts | 51 +++++++++++----- 80 files changed, 425 insertions(+), 383 deletions(-) create mode 100644 shared/core-utils/miscs/miscs.ts diff --git a/.travis.yml b/.travis.yml index dcf7247b2..8d61fc10f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ addons: - ubuntu-toolchain-r-test packages: - g++-4.9 - postgresql: "9.4" + postgresql: "9.6" cache: directories: diff --git a/server/tests/api/check-params/config.ts b/server/tests/api/check-params/config.ts index 3d80c629e..2a2ec606a 100644 --- a/server/tests/api/check-params/config.ts +++ b/server/tests/api/check-params/config.ts @@ -6,7 +6,7 @@ import { CustomConfig } from '../../../../shared/models/server/custom-config.mod import { createUser, flushTests, killallServers, makeDeleteRequest, makeGetRequest, makePutBodyRequest, flushAndRunServer, ServerInfo, - setAccessTokensToServers, userLogin, immutableAssign + setAccessTokensToServers, userLogin, immutableAssign, cleanupTests } from '../../../../shared/extra-utils' describe('Test config API validators', function () { @@ -181,7 +181,7 @@ describe('Test config API validators', function () { }) it('Should fail if email disabled and signup requires email verification', async function () { - // opposite scenario - succcess when enable enabled - covered via tests/api/users/user-verification.ts + // opposite scenario - success when enable enabled - covered via tests/api/users/user-verification.ts const newUpdateParams = immutableAssign(updateParams, { signup: { enabled: true, @@ -229,7 +229,7 @@ describe('Test config API validators', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/contact-form.ts b/server/tests/api/check-params/contact-form.ts index 6c7781f13..55004020f 100644 --- a/server/tests/api/check-params/contact-form.ts +++ b/server/tests/api/check-params/contact-form.ts @@ -9,7 +9,7 @@ import { reRunServer, flushAndRunServer, ServerInfo, - setAccessTokensToServers + setAccessTokensToServers, cleanupTests } from '../../../../shared/extra-utils' import { checkBadCountPagination, @@ -28,13 +28,14 @@ describe('Test contact form API validators', function () { fromEmail: 'toto@example.com', body: 'Hello, how are you?' } + let emailPort: number // --------------------------------------------------------------- before(async function () { this.timeout(60000) - await MockSmtpServer.Instance.collectEmails(emails) + emailPort = await MockSmtpServer.Instance.collectEmails(emails) // Email is disabled server = await flushAndRunServer(1) @@ -50,7 +51,7 @@ describe('Test contact form API validators', function () { killallServers([ server ]) // Contact form is disabled - await reRunServer(server, { smtp: { hostname: 'localhost' }, contact_form: { enabled: false } }) + await reRunServer(server, { smtp: { hostname: 'localhost', port: emailPort }, contact_form: { enabled: false } }) await sendContactForm(immutableAssign(defaultBody, { url: server.url, expectedStatus: 409 })) }) @@ -60,7 +61,7 @@ describe('Test contact form API validators', function () { killallServers([ server ]) // Email & contact form enabled - await reRunServer(server, { smtp: { hostname: 'localhost' } }) + await reRunServer(server, { smtp: { hostname: 'localhost', port: emailPort } }) await sendContactForm(immutableAssign(defaultBody, { url: server.url, expectedStatus: 400, fromEmail: 'badEmail' })) await sendContactForm(immutableAssign(defaultBody, { url: server.url, expectedStatus: 400, fromEmail: 'badEmail@' })) @@ -83,8 +84,9 @@ describe('Test contact form API validators', function () { await sendContactForm(immutableAssign(defaultBody, { url: server.url })) }) - after(function () { + after(async function () { MockSmtpServer.Instance.kill() - killallServers([ server ]) + + // await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/debug.ts b/server/tests/api/check-params/debug.ts index dd00ed9e1..8dad26723 100644 --- a/server/tests/api/check-params/debug.ts +++ b/server/tests/api/check-params/debug.ts @@ -9,7 +9,7 @@ import { flushAndRunServer, ServerInfo, setAccessTokensToServers, - userLogin + userLogin, cleanupTests } from '../../../../shared/extra-utils' import { makeGetRequest } from '../../../../shared/extra-utils/requests/requests' @@ -65,7 +65,7 @@ describe('Test debug API validators', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/follows.ts b/server/tests/api/check-params/follows.ts index 02f47c2bb..2eb54cb0a 100644 --- a/server/tests/api/check-params/follows.ts +++ b/server/tests/api/check-params/follows.ts @@ -3,7 +3,13 @@ import 'mocha' import { - createUser, flushTests, killallServers, makeDeleteRequest, makePostBodyRequest, flushAndRunServer, ServerInfo, setAccessTokensToServers, + cleanupTests, + createUser, + flushAndRunServer, + makeDeleteRequest, + makePostBodyRequest, + ServerInfo, + setAccessTokensToServers, userLogin } from '../../../../shared/extra-utils' import { @@ -295,7 +301,7 @@ describe('Test server follows API validators', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/jobs.ts b/server/tests/api/check-params/jobs.ts index ec2be0b9f..c70139514 100644 --- a/server/tests/api/check-params/jobs.ts +++ b/server/tests/api/check-params/jobs.ts @@ -9,7 +9,8 @@ import { flushAndRunServer, ServerInfo, setAccessTokensToServers, - userLogin + userLogin, + cleanupTests } from '../../../../shared/extra-utils' import { checkBadCountPagination, @@ -80,7 +81,7 @@ describe('Test jobs API validators', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/logs.ts b/server/tests/api/check-params/logs.ts index 46cb2392d..f9d96bcc0 100644 --- a/server/tests/api/check-params/logs.ts +++ b/server/tests/api/check-params/logs.ts @@ -9,7 +9,8 @@ import { flushAndRunServer, ServerInfo, setAccessTokensToServers, - userLogin + userLogin, + cleanupTests } from '../../../../shared/extra-utils' import { makeGetRequest } from '../../../../shared/extra-utils/requests/requests' @@ -104,7 +105,7 @@ describe('Test logs API validators', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/redundancy.ts b/server/tests/api/check-params/redundancy.ts index 8f930fbbc..6471da840 100644 --- a/server/tests/api/check-params/redundancy.ts +++ b/server/tests/api/check-params/redundancy.ts @@ -3,6 +3,7 @@ import 'mocha' import { + cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -43,7 +44,7 @@ describe('Test server redundancy API validators', function () { it('Should fail with an invalid token', async function () { await makePutBodyRequest({ url: servers[0].url, - path: path + '/localhost:9002', + path: path + '/localhost:' + servers[1].port, fields: { redundancyAllowed: true }, token: 'fake_token', statusCodeExpected: 401 @@ -53,7 +54,7 @@ describe('Test server redundancy API validators', function () { it('Should fail if the user is not an administrator', async function () { await makePutBodyRequest({ url: servers[0].url, - path: path + '/localhost:9002', + path: path + '/localhost:' + servers[1].port, fields: { redundancyAllowed: true }, token: userAccessToken, statusCodeExpected: 403 @@ -73,7 +74,7 @@ describe('Test server redundancy API validators', function () { it('Should fail without de redundancyAllowed param', async function () { await makePutBodyRequest({ url: servers[0].url, - path: path + '/localhost:9002', + path: path + '/localhost:' + servers[1].port, fields: { blabla: true }, token: servers[0].accessToken, statusCodeExpected: 400 @@ -83,7 +84,7 @@ describe('Test server redundancy API validators', function () { it('Should succeed with the correct parameters', async function () { await makePutBodyRequest({ url: servers[0].url, - path: path + '/localhost:9002', + path: path + '/localhost:' + servers[1].port, fields: { redundancyAllowed: true }, token: servers[0].accessToken, statusCodeExpected: 204 @@ -91,7 +92,7 @@ describe('Test server redundancy API validators', function () { }) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/check-params/search.ts b/server/tests/api/check-params/search.ts index 816719779..8ad9d98bf 100644 --- a/server/tests/api/check-params/search.ts +++ b/server/tests/api/check-params/search.ts @@ -2,7 +2,7 @@ import 'mocha' -import { flushTests, immutableAssign, killallServers, makeGetRequest, flushAndRunServer, ServerInfo } from '../../../../shared/extra-utils' +import { cleanupTests, flushAndRunServer, immutableAssign, makeGetRequest, ServerInfo } from '../../../../shared/extra-utils' import { checkBadCountPagination, checkBadSortPagination, @@ -144,7 +144,7 @@ describe('Test videos API validator', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/services.ts b/server/tests/api/check-params/services.ts index 33580ddb1..d15753aed 100644 --- a/server/tests/api/check-params/services.ts +++ b/server/tests/api/check-params/services.ts @@ -3,10 +3,9 @@ import 'mocha' import { - flushTests, - killallServers, - makeGetRequest, + cleanupTests, flushAndRunServer, + makeGetRequest, ServerInfo, setAccessTokensToServers, uploadVideo @@ -40,47 +39,47 @@ describe('Test services API validators', function () { }) it('Should fail with an invalid video id', async function () { - const embedUrl = 'http://localhost:9001/videos/watch/blabla' + const embedUrl = `http://localhost:${server.port}/videos/watch/blabla` await checkParamEmbed(server, embedUrl) }) it('Should fail with an unknown video', async function () { - const embedUrl = 'http://localhost:9001/videos/watch/88fc0165-d1f0-4a35-a51a-3b47f668689c' + const embedUrl = `http://localhost:${server.port}/videos/watch/88fc0165-d1f0-4a35-a51a-3b47f668689c` await checkParamEmbed(server, embedUrl, 404) }) it('Should fail with an invalid path', async function () { - const embedUrl = 'http://localhost:9001/videos/watchs/' + server.video.uuid + const embedUrl = `http://localhost:${server.port}/videos/watchs/${server.video.uuid}` await checkParamEmbed(server, embedUrl) }) it('Should fail with an invalid max height', async function () { - const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid + const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}` await checkParamEmbed(server, embedUrl, 400, { maxheight: 'hello' }) }) it('Should fail with an invalid max width', async function () { - const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid + const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}` await checkParamEmbed(server, embedUrl, 400, { maxwidth: 'hello' }) }) it('Should fail with an invalid format', async function () { - const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid + const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}` await checkParamEmbed(server, embedUrl, 400, { format: 'blabla' }) }) it('Should fail with a non supported format', async function () { - const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid + const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}` await checkParamEmbed(server, embedUrl, 501, { format: 'xml' }) }) it('Should succeed with the correct params', async function () { - const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid + const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}` const query = { format: 'json', maxheight: 400, @@ -91,8 +90,8 @@ describe('Test services API validators', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/user-notifications.ts b/server/tests/api/check-params/user-notifications.ts index 32619d7e1..14ee20d45 100644 --- a/server/tests/api/check-params/user-notifications.ts +++ b/server/tests/api/check-params/user-notifications.ts @@ -4,13 +4,12 @@ import 'mocha' import * as io from 'socket.io-client' import { - flushTests, + cleanupTests, + flushAndRunServer, immutableAssign, - killallServers, makeGetRequest, makePostBodyRequest, makePutBodyRequest, - flushAndRunServer, ServerInfo, setAccessTokensToServers, wait @@ -234,7 +233,7 @@ describe('Test user notifications API validators', function () { describe('When connecting to my notification socket', function () { it('Should fail with no token', function (next) { - const socket = io('http://localhost:9001/user-notifications', { reconnection: false }) + const socket = io(`http://localhost:${server.port}/user-notifications`, { reconnection: false }) socket.on('error', () => { socket.removeListener('error', this) @@ -249,7 +248,7 @@ describe('Test user notifications API validators', function () { }) it('Should fail with an invalid token', function (next) { - const socket = io('http://localhost:9001/user-notifications', { + const socket = io(`http://localhost:${server.port}/user-notifications`, { query: { accessToken: 'bad_access_token' }, reconnection: false }) @@ -267,7 +266,7 @@ describe('Test user notifications API validators', function () { }) it('Should success with the correct token', function (next) { - const socket = io('http://localhost:9001/user-notifications', { + const socket = io(`http://localhost:${server.port}/user-notifications`, { query: { accessToken: server.accessToken }, reconnection: false }) @@ -286,7 +285,7 @@ describe('Test user notifications API validators', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/user-subscriptions.ts b/server/tests/api/check-params/user-subscriptions.ts index 1fe67fa7c..fa36c4078 100644 --- a/server/tests/api/check-params/user-subscriptions.ts +++ b/server/tests/api/check-params/user-subscriptions.ts @@ -3,13 +3,12 @@ import 'mocha' import { + cleanupTests, createUser, - flushTests, - killallServers, + flushAndRunServer, makeDeleteRequest, makeGetRequest, makePostBodyRequest, - flushAndRunServer, ServerInfo, setAccessTokensToServers, userLogin @@ -113,7 +112,7 @@ describe('Test user subscriptions API validators', function () { await makePostBodyRequest({ url: server.url, path, - fields: { uri: 'user1_channel@localhost:9001' }, + fields: { uri: 'user1_channel@localhost:' + server.port }, statusCodeExpected: 401 }) }) @@ -151,7 +150,7 @@ describe('Test user subscriptions API validators', function () { url: server.url, path, token: server.accessToken, - fields: { uri: 'user1_channel@localhost:9001' }, + fields: { uri: 'user1_channel@localhost:' + server.port }, statusCodeExpected: 204 }) @@ -163,7 +162,7 @@ describe('Test user subscriptions API validators', function () { it('Should fail with a non authenticated user', async function () { await makeGetRequest({ url: server.url, - path: path + '/user1_channel@localhost:9001', + path: path + '/user1_channel@localhost:' + server.port, statusCodeExpected: 401 }) }) @@ -194,7 +193,7 @@ describe('Test user subscriptions API validators', function () { it('Should fail with an unknown subscription', async function () { await makeGetRequest({ url: server.url, - path: path + '/root1@localhost:9001', + path: path + '/root1@localhost:' + server.port, token: server.accessToken, statusCodeExpected: 404 }) @@ -203,7 +202,7 @@ describe('Test user subscriptions API validators', function () { it('Should succeed with the correct parameters', async function () { await makeGetRequest({ url: server.url, - path: path + '/user1_channel@localhost:9001', + path: path + '/user1_channel@localhost:' + server.port, token: server.accessToken, statusCodeExpected: 200 }) @@ -243,7 +242,7 @@ describe('Test user subscriptions API validators', function () { await makeGetRequest({ url: server.url, path: existPath, - query: { 'uris[]': 'coucou@localhost:9001' }, + query: { 'uris[]': 'coucou@localhost:' + server.port }, token: server.accessToken, statusCodeExpected: 200 }) @@ -254,7 +253,7 @@ describe('Test user subscriptions API validators', function () { it('Should fail with a non authenticated user', async function () { await makeDeleteRequest({ url: server.url, - path: path + '/user1_channel@localhost:9001', + path: path + '/user1_channel@localhost:' + server.port, statusCodeExpected: 401 }) }) @@ -285,7 +284,7 @@ describe('Test user subscriptions API validators', function () { it('Should fail with an unknown subscription', async function () { await makeDeleteRequest({ url: server.url, - path: path + '/root1@localhost:9001', + path: path + '/root1@localhost:' + server.port, token: server.accessToken, statusCodeExpected: 404 }) @@ -294,14 +293,14 @@ describe('Test user subscriptions API validators', function () { it('Should succeed with the correct parameters', async function () { await makeDeleteRequest({ url: server.url, - path: path + '/user1_channel@localhost:9001', + path: path + '/user1_channel@localhost:' + server.port, token: server.accessToken, statusCodeExpected: 204 }) }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/users.ts b/server/tests/api/check-params/users.ts index d2fea65f6..5935104a5 100644 --- a/server/tests/api/check-params/users.ts +++ b/server/tests/api/check-params/users.ts @@ -7,6 +7,7 @@ import { UserRole, VideoImport, VideoImportState } from '../../../../shared' import { blockUser, + cleanupTests, createUser, deleteMe, flushAndRunServer, @@ -14,7 +15,6 @@ import { getMyUserVideoRating, getUsersList, immutableAssign, - killallServers, makeGetRequest, makePostBodyRequest, makePutBodyRequest, @@ -713,7 +713,7 @@ describe('Test users API validators', function () { }) it('Should fail if we register a user with the same email', async function () { - const fields = immutableAssign(baseCorrectParams, { email: 'admin1@example.com' }) + const fields = immutableAssign(baseCorrectParams, { email: 'admin' + server.internalServerNumber + '@example.com' }) await makePostBodyRequest({ url: server.url, @@ -897,7 +897,7 @@ describe('Test users API validators', function () { }) }) - after(function () { - killallServers([ server, serverWithRegistrationDisabled ]) + after(async function () { + await cleanupTests([ server, serverWithRegistrationDisabled ]) }) }) diff --git a/server/tests/api/check-params/video-abuses.ts b/server/tests/api/check-params/video-abuses.ts index e2813d470..bf29f8d4d 100644 --- a/server/tests/api/check-params/video-abuses.ts +++ b/server/tests/api/check-params/video-abuses.ts @@ -3,13 +3,12 @@ import 'mocha' import { + cleanupTests, createUser, deleteVideoAbuse, - flushTests, - killallServers, + flushAndRunServer, makeGetRequest, makePostBodyRequest, - flushAndRunServer, ServerInfo, setAccessTokensToServers, updateVideoAbuse, @@ -188,7 +187,7 @@ describe('Test video abuses API validators', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/video-blacklist.ts b/server/tests/api/check-params/video-blacklist.ts index f9c7d9e9a..6466888fb 100644 --- a/server/tests/api/check-params/video-blacklist.ts +++ b/server/tests/api/check-params/video-blacklist.ts @@ -3,6 +3,7 @@ import 'mocha' import { + cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -247,7 +248,7 @@ describe('Test video blacklist API validators', function () { }) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/check-params/video-captions.ts b/server/tests/api/check-params/video-captions.ts index 64265865a..4a373d43d 100644 --- a/server/tests/api/check-params/video-captions.ts +++ b/server/tests/api/check-params/video-captions.ts @@ -2,13 +2,12 @@ import 'mocha' import { + cleanupTests, createUser, - flushTests, - killallServers, + flushAndRunServer, makeDeleteRequest, makeGetRequest, makeUploadRequest, - flushAndRunServer, ServerInfo, setAccessTokensToServers, uploadVideo, @@ -269,7 +268,7 @@ describe('Test video captions API validator', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/video-channels.ts b/server/tests/api/check-params/video-channels.ts index 06da4f541..65bc20613 100644 --- a/server/tests/api/check-params/video-channels.ts +++ b/server/tests/api/check-params/video-channels.ts @@ -4,19 +4,16 @@ import * as chai from 'chai' import { omit } from 'lodash' import 'mocha' import { + cleanupTests, createUser, deleteVideoChannel, - flushTests, + flushAndRunServer, getAccountVideoChannelsList, - getMyUserInformation, - getVideoChannelsList, immutableAssign, - killallServers, makeGetRequest, makePostBodyRequest, makePutBodyRequest, makeUploadRequest, - flushAndRunServer, ServerInfo, setAccessTokensToServers, userLogin @@ -26,7 +23,6 @@ import { checkBadSortPagination, checkBadStartPagination } from '../../../../shared/extra-utils/requests/check-api-params' -import { User } from '../../../../shared/models/users' import { join } from 'path' const expect = chai.expect @@ -310,7 +306,7 @@ describe('Test video channels API validator', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/video-comments.ts b/server/tests/api/check-params/video-comments.ts index dfa4c29b6..5cf90bacc 100644 --- a/server/tests/api/check-params/video-comments.ts +++ b/server/tests/api/check-params/video-comments.ts @@ -3,9 +3,9 @@ import * as chai from 'chai' import 'mocha' import { + cleanupTests, createUser, flushAndRunServer, - killallServers, makeDeleteRequest, makeGetRequest, makePostBodyRequest, @@ -258,7 +258,7 @@ describe('Test video comments API validator', function () { it('Should return conflict on comment thread add') }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/video-imports.ts b/server/tests/api/check-params/video-imports.ts index 82fdc0667..8ff115e7b 100644 --- a/server/tests/api/check-params/video-imports.ts +++ b/server/tests/api/check-params/video-imports.ts @@ -5,15 +5,14 @@ import 'mocha' import { join } from 'path' import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum' import { + cleanupTests, createUser, - flushTests, + flushAndRunServer, getMyUserInformation, immutableAssign, - killallServers, makeGetRequest, makePostBodyRequest, makeUploadRequest, - flushAndRunServer, ServerInfo, setAccessTokensToServers, updateCustomSubConfig, @@ -311,7 +310,7 @@ describe('Test video imports API validator', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/video-playlists.ts b/server/tests/api/check-params/video-playlists.ts index 0edb51682..b7b94c035 100644 --- a/server/tests/api/check-params/video-playlists.ts +++ b/server/tests/api/check-params/video-playlists.ts @@ -3,20 +3,20 @@ import 'mocha' import { addVideoInPlaylist, + cleanupTests, createVideoPlaylist, deleteVideoPlaylist, - flushTests, + flushAndRunServer, generateUserAccessToken, getAccountPlaylistsListWithToken, getVideoPlaylist, immutableAssign, - killallServers, makeGetRequest, removeVideoFromPlaylist, reorderVideosPlaylist, - flushAndRunServer, ServerInfo, - setAccessTokensToServers, setDefaultVideoChannel, + setAccessTokensToServers, + setDefaultVideoChannel, updateVideoPlaylist, updateVideoPlaylistElement, uploadVideoAndGetId @@ -668,7 +668,7 @@ describe('Test video playlists API validator', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/videos-filter.ts b/server/tests/api/check-params/videos-filter.ts index 82cc0f638..babef8223 100644 --- a/server/tests/api/check-params/videos-filter.ts +++ b/server/tests/api/check-params/videos-filter.ts @@ -2,14 +2,14 @@ import 'mocha' import { + cleanupTests, createUser, createVideoPlaylist, - flushTests, - killallServers, - makeGetRequest, flushAndRunServer, + makeGetRequest, ServerInfo, - setAccessTokensToServers, setDefaultVideoChannel, + setAccessTokensToServers, + setDefaultVideoChannel, userLogin } from '../../../../shared/extra-utils' import { UserRole } from '../../../../shared/models/users' @@ -129,7 +129,7 @@ describe('Test videos filters', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/videos-history.ts b/server/tests/api/check-params/videos-history.ts index 32f65f510..3739e3fad 100644 --- a/server/tests/api/check-params/videos-history.ts +++ b/server/tests/api/check-params/videos-history.ts @@ -5,12 +5,11 @@ import 'mocha' import { checkBadCountPagination, checkBadStartPagination, - flushTests, - killallServers, + cleanupTests, + flushAndRunServer, makeGetRequest, makePostBodyRequest, makePutBodyRequest, - flushAndRunServer, ServerInfo, setAccessTokensToServers, uploadVideo @@ -126,7 +125,7 @@ describe('Test videos history API validator', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/check-params/videos.ts b/server/tests/api/check-params/videos.ts index bc321e91f..51e592a15 100644 --- a/server/tests/api/check-params/videos.ts +++ b/server/tests/api/check-params/videos.ts @@ -6,16 +6,28 @@ import 'mocha' import { join } from 'path' import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum' import { - createUser, flushTests, getMyUserInformation, getVideo, getVideosList, immutableAssign, killallServers, makeDeleteRequest, - makeGetRequest, makeUploadRequest, makePutBodyRequest, removeVideo, uploadVideo, - flushAndRunServer, ServerInfo, setAccessTokensToServers, userLogin, updateCustomSubConfig + cleanupTests, + createUser, + flushAndRunServer, + getMyUserInformation, + getVideo, + getVideosList, + immutableAssign, + makeDeleteRequest, + makeGetRequest, + makePutBodyRequest, + makeUploadRequest, + removeVideo, + ServerInfo, + setAccessTokensToServers, + userLogin, + root } from '../../../../shared/extra-utils' import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '../../../../shared/extra-utils/requests/check-api-params' -import { getAccountsList } from '../../../../shared/extra-utils/users/accounts' const expect = chai.expect @@ -166,7 +178,7 @@ describe('Test videos API validator', function () { describe('When adding a video', function () { let baseCorrectParams const baseCorrectAttaches = { - 'videofile': join(__dirname, '..', '..', 'fixtures', 'video_short.webm') + 'videofile': join(root(), 'server', 'tests', 'fixtures', 'video_short.webm') } before(function () { @@ -326,15 +338,15 @@ describe('Test videos API validator', function () { await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) }) - it('Should fail without an incorrect input file', async function () { + it('Should fail with an incorrect input file', async function () { const fields = baseCorrectParams let attaches = { - 'videofile': join(__dirname, '..', '..', 'fixtures', 'video_short_fake.webm') + 'videofile': join(root(), 'server', 'tests', 'fixtures', 'video_short_fake.webm') } await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) attaches = { - 'videofile': join(__dirname, '..', '..', 'fixtures', 'video_short.mkv') + 'videofile': join(root(), 'server', 'tests', 'fixtures', 'video_short.mkv') } await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) }) @@ -342,8 +354,8 @@ describe('Test videos API validator', function () { it('Should fail with an incorrect thumbnail file', async function () { const fields = baseCorrectParams const attaches = { - 'thumbnailfile': join(__dirname, '..', '..', 'fixtures', 'avatar.png'), - 'videofile': join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') + 'thumbnailfile': join(root(), 'server', 'tests', 'fixtures', 'avatar.png'), + 'videofile': join(root(), 'server', 'tests', 'fixtures', 'video_short.mp4') } await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) @@ -352,8 +364,8 @@ describe('Test videos API validator', function () { it('Should fail with a big thumbnail file', async function () { const fields = baseCorrectParams const attaches = { - 'thumbnailfile': join(__dirname, '..', '..', 'fixtures', 'avatar-big.png'), - 'videofile': join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') + 'thumbnailfile': join(root(), 'server', 'tests', 'fixtures', 'avatar-big.png'), + 'videofile': join(root(), 'server', 'tests', 'fixtures', 'video_short.mp4') } await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) @@ -362,8 +374,8 @@ describe('Test videos API validator', function () { it('Should fail with an incorrect preview file', async function () { const fields = baseCorrectParams const attaches = { - 'previewfile': join(__dirname, '..', '..', 'fixtures', 'avatar.png'), - 'videofile': join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') + 'previewfile': join(root(), 'server', 'tests', 'fixtures', 'avatar.png'), + 'videofile': join(root(), 'server', 'tests', 'fixtures', 'video_short.mp4') } await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) @@ -372,8 +384,8 @@ describe('Test videos API validator', function () { it('Should fail with a big preview file', async function () { const fields = baseCorrectParams const attaches = { - 'previewfile': join(__dirname, '..', '..', 'fixtures', 'avatar-big.png'), - 'videofile': join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') + 'previewfile': join(root(), 'server', 'tests', 'fixtures', 'avatar-big.png'), + 'videofile': join(root(), 'server', 'tests', 'fixtures', 'video_short.mp4') } await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) @@ -398,7 +410,7 @@ describe('Test videos API validator', function () { { const attaches = immutableAssign(baseCorrectAttaches, { - videofile: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') + videofile: join(root(), 'server', 'tests', 'fixtures', 'video_short.mp4') }) await makeUploadRequest({ @@ -413,7 +425,7 @@ describe('Test videos API validator', function () { { const attaches = immutableAssign(baseCorrectAttaches, { - videofile: join(__dirname, '..', '..', 'fixtures', 'video_short.ogv') + videofile: join(root(), 'server', 'tests', 'fixtures', 'video_short.ogv') }) await makeUploadRequest({ @@ -550,7 +562,7 @@ describe('Test videos API validator', function () { it('Should fail with an incorrect thumbnail file', async function () { const fields = baseCorrectParams const attaches = { - 'thumbnailfile': join(__dirname, '..', '..', 'fixtures', 'avatar.png') + 'thumbnailfile': join(root(), 'server', 'tests', 'fixtures', 'avatar.png') } await makeUploadRequest({ @@ -566,7 +578,7 @@ describe('Test videos API validator', function () { it('Should fail with a big thumbnail file', async function () { const fields = baseCorrectParams const attaches = { - 'thumbnailfile': join(__dirname, '..', '..', 'fixtures', 'avatar-big.png') + 'thumbnailfile': join(root(), 'server', 'tests', 'fixtures', 'avatar-big.png') } await makeUploadRequest({ @@ -582,7 +594,7 @@ describe('Test videos API validator', function () { it('Should fail with an incorrect preview file', async function () { const fields = baseCorrectParams const attaches = { - 'previewfile': join(__dirname, '..', '..', 'fixtures', 'avatar.png') + 'previewfile': join(root(), 'server', 'tests', 'fixtures', 'avatar.png') } await makeUploadRequest({ @@ -598,7 +610,7 @@ describe('Test videos API validator', function () { it('Should fail with a big preview file', async function () { const fields = baseCorrectParams const attaches = { - 'previewfile': join(__dirname, '..', '..', 'fixtures', 'avatar-big.png') + 'previewfile': join(root(), 'server', 'tests', 'fixtures', 'avatar-big.png') } await makeUploadRequest({ @@ -728,7 +740,7 @@ describe('Test videos API validator', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/notifications/user-notifications.ts b/server/tests/api/notifications/user-notifications.ts index eb4fdb87c..3874b0aab 100644 --- a/server/tests/api/notifications/user-notifications.ts +++ b/server/tests/api/notifications/user-notifications.ts @@ -19,7 +19,7 @@ import { userLogin, wait, getCustomConfig, - updateCustomConfig, getVideoThreadComments, getVideoCommentThreads, follow + updateCustomConfig, getVideoThreadComments, getVideoCommentThreads, follow, cleanupTests } from '../../../../shared/extra-utils' import { killallServers, ServerInfo, uploadVideo } from '../../../../shared/extra-utils/index' import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' @@ -1295,9 +1295,9 @@ describe('Test users notifications', function () { }) }) - after(function () { + after(async function () { MockSmtpServer.Instance.kill() - killallServers(servers) + await cleanupTests(servers) }) }) diff --git a/server/tests/api/redundancy/redundancy.ts b/server/tests/api/redundancy/redundancy.ts index 280a4c64b..e31329c25 100644 --- a/server/tests/api/redundancy/redundancy.ts +++ b/server/tests/api/redundancy/redundancy.ts @@ -5,7 +5,7 @@ import 'mocha' import { VideoDetails } from '../../../../shared/models/videos' import { checkSegmentHash, - checkVideoFilesWereRemoved, + checkVideoFilesWereRemoved, cleanupTests, doubleFollow, flushAndRunMultipleServers, getFollowingListPaginationAndSort, @@ -52,7 +52,7 @@ function checkMagnetWebseeds (file: { magnetUri: string, resolution: { id: numbe expect(parsed.urlList).to.have.lengthOf(baseWebseeds.length) } -async function runServers (strategy: VideoRedundancyStrategy, additionalParams: any = {}) { +async function flushAndRunServers (strategy: VideoRedundancyStrategy, additionalParams: any = {}) { const config = { transcoding: { hls: { @@ -264,10 +264,6 @@ async function disableRedundancyOnServer1 () { expect(server2.following.hostRedundancyAllowed).to.be.false } -async function cleanServers () { - killallServers(servers) -} - describe('Test videos redundancy', function () { describe('With most-views strategy', function () { @@ -276,7 +272,7 @@ describe('Test videos redundancy', function () { before(function () { this.timeout(120000) - return runServers(strategy) + return flushAndRunServers(strategy) }) it('Should have 1 webseed on the first video', async function () { @@ -315,8 +311,8 @@ describe('Test videos redundancy', function () { await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ 'videos', join('playlists', 'hls') ]) }) - after(function () { - return cleanServers() + after(async function () { + return cleanupTests(servers) }) }) @@ -326,7 +322,7 @@ describe('Test videos redundancy', function () { before(function () { this.timeout(120000) - return runServers(strategy) + return flushAndRunServers(strategy) }) it('Should have 1 webseed on the first video', async function () { @@ -365,8 +361,8 @@ describe('Test videos redundancy', function () { await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ 'videos' ]) }) - after(function () { - return cleanServers() + after(async function () { + await cleanupTests(servers) }) }) @@ -376,7 +372,7 @@ describe('Test videos redundancy', function () { before(function () { this.timeout(120000) - return runServers(strategy, { min_views: 3 }) + return flushAndRunServers(strategy, { min_views: 3 }) }) it('Should have 1 webseed on the first video', async function () { @@ -435,8 +431,8 @@ describe('Test videos redundancy', function () { } }) - after(function () { - return cleanServers() + after(async function () { + await cleanupTests(servers) }) }) @@ -468,7 +464,7 @@ describe('Test videos redundancy', function () { before(async function () { this.timeout(120000) - await runServers(strategy, { min_lifetime: '7 seconds', min_views: 0 }) + await flushAndRunServers(strategy, { min_lifetime: '7 seconds', min_views: 0 }) await enableRedundancyOnServer1() }) @@ -498,8 +494,8 @@ describe('Test videos redundancy', function () { await checkNotContains([ servers[1], servers[2] ], 'http%3A%2F%2Flocalhost%3A9001') }) - after(function () { - return killallServers([ servers[1], servers[2] ]) + after(async function () { + await cleanupTests(servers) }) }) @@ -510,7 +506,7 @@ describe('Test videos redundancy', function () { before(async function () { this.timeout(120000) - await runServers(strategy, { min_lifetime: '7 seconds', min_views: 0 }) + await flushAndRunServers(strategy, { min_lifetime: '7 seconds', min_views: 0 }) await enableRedundancyOnServer1() @@ -569,8 +565,8 @@ describe('Test videos redundancy', function () { await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ join('redundancy', 'hls') ]) }) - after(function () { - return cleanServers() + after(async function () { + await cleanupTests(servers) }) }) }) diff --git a/server/tests/api/search/search-activitypub-video-channels.ts b/server/tests/api/search/search-activitypub-video-channels.ts index c5662f049..4d1ceb767 100644 --- a/server/tests/api/search/search-activitypub-video-channels.ts +++ b/server/tests/api/search/search-activitypub-video-channels.ts @@ -3,7 +3,7 @@ import * as chai from 'chai' import 'mocha' import { - addVideoChannel, + addVideoChannel, cleanupTests, createUser, deleteVideoChannel, flushAndRunMultipleServers, @@ -205,7 +205,7 @@ describe('Test a ActivityPub video channels search', function () { expect(res.body.data).to.have.lengthOf(0) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/search/search-activitypub-videos.ts b/server/tests/api/search/search-activitypub-videos.ts index 5c2a44ad5..e039961cb 100644 --- a/server/tests/api/search/search-activitypub-videos.ts +++ b/server/tests/api/search/search-activitypub-videos.ts @@ -15,7 +15,7 @@ import { updateVideo, uploadVideo, wait, - searchVideo + searchVideo, cleanupTests } from '../../../../shared/extra-utils' import { waitJobs } from '../../../../shared/extra-utils/server/jobs' import { Video, VideoPrivacy } from '../../../../shared/models/videos' @@ -149,7 +149,7 @@ describe('Test a ActivityPub videos search', function () { expect(res.body.data).to.have.lengthOf(0) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/search/search-videos.ts b/server/tests/api/search/search-videos.ts index d1520a9aa..1a086b33a 100644 --- a/server/tests/api/search/search-videos.ts +++ b/server/tests/api/search/search-videos.ts @@ -12,7 +12,8 @@ import { setAccessTokensToServers, uploadVideo, wait, - immutableAssign + immutableAssign, + cleanupTests } from '../../../../shared/extra-utils' const expect = chai.expect @@ -405,7 +406,7 @@ describe('Test a videos search', function () { } }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/server/config.ts b/server/tests/api/server/config.ts index d8137b339..c0d11914b 100644 --- a/server/tests/api/server/config.ts +++ b/server/tests/api/server/config.ts @@ -5,15 +5,15 @@ import * as chai from 'chai' import { About } from '../../../../shared/models/server/about.model' import { CustomConfig } from '../../../../shared/models/server/custom-config.model' import { + cleanupTests, deleteCustomConfig, + flushAndRunServer, getAbout, - killallServers, - reRunServer, - flushTests, getConfig, getCustomConfig, + killallServers, registerUser, - flushAndRunServer, + reRunServer, setAccessTokensToServers, updateCustomConfig } from '../../../../shared/extra-utils' @@ -300,7 +300,7 @@ describe('Test config', function () { checkInitialConfig(data) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/server/contact-form.ts b/server/tests/api/server/contact-form.ts index 26ebb4ed7..ba51198b3 100644 --- a/server/tests/api/server/contact-form.ts +++ b/server/tests/api/server/contact-form.ts @@ -2,7 +2,15 @@ import * as chai from 'chai' import 'mocha' -import { flushTests, killallServers, flushAndRunServer, ServerInfo, setAccessTokensToServers, wait } from '../../../../shared/extra-utils' +import { + flushTests, + killallServers, + flushAndRunServer, + ServerInfo, + setAccessTokensToServers, + wait, + cleanupTests +} from '../../../../shared/extra-utils' import { MockSmtpServer } from '../../../../shared/extra-utils/miscs/email' import { waitJobs } from '../../../../shared/extra-utils/server/jobs' import { sendContactForm } from '../../../../shared/extra-utils/server/contact-form' @@ -78,8 +86,9 @@ describe('Test contact form', function () { }) }) - after(function () { + after(async function () { MockSmtpServer.Instance.kill() - killallServers([ server ]) + + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/server/email.ts b/server/tests/api/server/email.ts index 1158ceb0e..bacdf1b1b 100644 --- a/server/tests/api/server/email.ts +++ b/server/tests/api/server/email.ts @@ -18,7 +18,7 @@ import { flushTests, killallServers, ServerInfo, - setAccessTokensToServers + setAccessTokensToServers, cleanupTests } from '../../../../shared/extra-utils' import { MockSmtpServer } from '../../../../shared/extra-utils/miscs/email' import { waitJobs } from '../../../../shared/extra-utils/server/jobs' @@ -256,8 +256,9 @@ describe('Test emails', function () { }) }) - after(function () { + after(async function () { MockSmtpServer.Instance.kill() - killallServers([ server ]) + + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/server/follow-constraints.ts b/server/tests/api/server/follow-constraints.ts index cf40018b3..4285a9e7a 100644 --- a/server/tests/api/server/follow-constraints.ts +++ b/server/tests/api/server/follow-constraints.ts @@ -12,7 +12,7 @@ import { killallServers, ServerInfo, setAccessTokensToServers, - uploadVideo + uploadVideo, cleanupTests } from '../../../../shared/extra-utils' import { unfollow } from '../../../../shared/extra-utils/server/follows' import { userLogin } from '../../../../shared/extra-utils/users/login' @@ -219,7 +219,7 @@ describe('Test follow constraints', function () { }) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/server/follows-moderation.ts b/server/tests/api/server/follows-moderation.ts index ae8716184..2a3a4d5c8 100644 --- a/server/tests/api/server/follows-moderation.ts +++ b/server/tests/api/server/follows-moderation.ts @@ -3,7 +3,7 @@ import * as chai from 'chai' import 'mocha' import { - acceptFollower, + acceptFollower, cleanupTests, flushAndRunMultipleServers, killallServers, ServerInfo, @@ -189,7 +189,7 @@ describe('Test follows moderation', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/server/follows.ts b/server/tests/api/server/follows.ts index f1b4a450e..397093cdb 100644 --- a/server/tests/api/server/follows.ts +++ b/server/tests/api/server/follows.ts @@ -4,7 +4,7 @@ import * as chai from 'chai' import 'mocha' import { Video, VideoPrivacy } from '../../../../shared/models/videos' import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model' -import { completeVideoCheck } from '../../../../shared/extra-utils' +import { cleanupTests, completeVideoCheck } from '../../../../shared/extra-utils' import { flushAndRunMultipleServers, getVideosList, @@ -435,7 +435,7 @@ describe('Test follows', function () { }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/server/handle-down.ts b/server/tests/api/server/handle-down.ts index d0f700bda..19010dbc1 100644 --- a/server/tests/api/server/handle-down.ts +++ b/server/tests/api/server/handle-down.ts @@ -7,6 +7,7 @@ import { VideoPrivacy } from '../../../../shared/models/videos' import { VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model' import { + cleanupTests, completeVideoCheck, flushAndRunMultipleServers, getVideo, @@ -296,7 +297,7 @@ describe('Test handle downs', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/server/jobs.ts b/server/tests/api/server/jobs.ts index 01f561b0d..634654626 100644 --- a/server/tests/api/server/jobs.ts +++ b/server/tests/api/server/jobs.ts @@ -2,7 +2,7 @@ import * as chai from 'chai' import 'mocha' -import { killallServers, ServerInfo, setAccessTokensToServers } from '../../../../shared/extra-utils/index' +import { cleanupTests, killallServers, ServerInfo, setAccessTokensToServers } from '../../../../shared/extra-utils/index' import { doubleFollow } from '../../../../shared/extra-utils/server/follows' import { getJobsList, getJobsListPaginationAndSort, waitJobs } from '../../../../shared/extra-utils/server/jobs' import { flushAndRunMultipleServers } from '../../../../shared/extra-utils/server/servers' @@ -56,7 +56,7 @@ describe('Test jobs', function () { expect(dateIsValid(job.finishedOn)).to.be.true }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/server/logs.ts b/server/tests/api/server/logs.ts index 5ca352205..3644fa0d3 100644 --- a/server/tests/api/server/logs.ts +++ b/server/tests/api/server/logs.ts @@ -2,7 +2,14 @@ import * as chai from 'chai' import 'mocha' -import { flushTests, killallServers, flushAndRunServer, ServerInfo, setAccessTokensToServers } from '../../../../shared/extra-utils/index' +import { + flushTests, + killallServers, + flushAndRunServer, + ServerInfo, + setAccessTokensToServers, + cleanupTests +} from '../../../../shared/extra-utils/index' import { waitJobs } from '../../../../shared/extra-utils/server/jobs' import { uploadVideo } from '../../../../shared/extra-utils/videos/videos' import { getLogs } from '../../../../shared/extra-utils/logs/logs' @@ -84,7 +91,7 @@ describe('Test logs', function () { } }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/server/no-client.ts b/server/tests/api/server/no-client.ts index 226fbfda4..86edeb289 100644 --- a/server/tests/api/server/no-client.ts +++ b/server/tests/api/server/no-client.ts @@ -1,11 +1,7 @@ import 'mocha' import * as request from 'supertest' -import { - flushTests, - killallServers, - ServerInfo -} from '../../../../shared/extra-utils' -import { flushAndRunServer } from '../../../../shared/extra-utils/server/servers' +import { ServerInfo } from '../../../../shared/extra-utils' +import { cleanupTests, flushAndRunServer } from '../../../../shared/extra-utils/server/servers' describe('Start and stop server without web client routes', function () { let server: ServerInfo @@ -23,7 +19,7 @@ describe('Start and stop server without web client routes', function () { return req.expect(404) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/server/reverse-proxy.ts b/server/tests/api/server/reverse-proxy.ts index e55b12bfc..987538237 100644 --- a/server/tests/api/server/reverse-proxy.ts +++ b/server/tests/api/server/reverse-proxy.ts @@ -2,28 +2,10 @@ import 'mocha' import * as chai from 'chai' -import { About } from '../../../../shared/models/server/about.model' -import { CustomConfig } from '../../../../shared/models/server/custom-config.model' -import { - deleteCustomConfig, - getAbout, - getVideo, - killallServers, - login, - reRunServer, - uploadVideo, - userLogin, - viewVideo, - wait -} from '../../../../shared/extra-utils' -const expect = chai.expect +import { cleanupTests, getVideo, uploadVideo, userLogin, viewVideo, wait } from '../../../../shared/extra-utils' +import { flushAndRunServer, setAccessTokensToServers } from '../../../../shared/extra-utils/index' -import { - getConfig, - flushTests, - flushAndRunServer, - registerUser, getCustomConfig, setAccessTokensToServers, updateCustomConfig -} from '../../../../shared/extra-utils/index' +const expect = chai.expect describe('Test application behind a reverse proxy', function () { let server = null @@ -100,7 +82,7 @@ describe('Test application behind a reverse proxy', function () { await userLogin(server, user, 429) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/server/stats.ts b/server/tests/api/server/stats.ts index bd3d2155c..a01cd4b38 100644 --- a/server/tests/api/server/stats.ts +++ b/server/tests/api/server/stats.ts @@ -4,6 +4,7 @@ import * as chai from 'chai' import 'mocha' import { ServerStats } from '../../../../shared/models/server/server-stats.model' import { + cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -95,7 +96,7 @@ describe('Test stats (excluding redundancy)', function () { expect(data.totalInstanceFollowers).to.equal(0) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/server/tracker.ts b/server/tests/api/server/tracker.ts index 1b4e190f1..9d7eec8ca 100644 --- a/server/tests/api/server/tracker.ts +++ b/server/tests/api/server/tracker.ts @@ -2,8 +2,16 @@ import * as magnetUtil from 'magnet-uri' import 'mocha' -import { getVideo, killallServers, reRunServer, flushAndRunServer, ServerInfo, uploadVideo } from '../../../../shared/extra-utils' -import { flushTests, setAccessTokensToServers } from '../../../../shared/extra-utils/index' +import { + cleanupTests, + flushAndRunServer, + getVideo, + killallServers, + reRunServer, + ServerInfo, + uploadVideo +} from '../../../../shared/extra-utils' +import { setAccessTokensToServers } from '../../../../shared/extra-utils/index' import { VideoDetails } from '../../../../shared/models/videos' import * as WebTorrent from 'webtorrent' @@ -82,7 +90,7 @@ describe('Test tracker', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/users/blocklist.ts b/server/tests/api/users/blocklist.ts index 34eabf2e6..fbc57e0ef 100644 --- a/server/tests/api/users/blocklist.ts +++ b/server/tests/api/users/blocklist.ts @@ -4,6 +4,7 @@ import * as chai from 'chai' import 'mocha' import { AccountBlock, ServerBlock, Video } from '../../../../shared/index' import { + cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -498,7 +499,7 @@ describe('Test blocklist', function () { }) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/users/user-subscriptions.ts b/server/tests/api/users/user-subscriptions.ts index ee5abd6b7..48811e647 100644 --- a/server/tests/api/users/user-subscriptions.ts +++ b/server/tests/api/users/user-subscriptions.ts @@ -3,6 +3,7 @@ import * as chai from 'chai' import 'mocha' import { + cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -368,7 +369,7 @@ describe('Test users subscriptions', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/users/users-multiple-servers.ts b/server/tests/api/users/users-multiple-servers.ts index 7097d90d1..9a971adb3 100644 --- a/server/tests/api/users/users-multiple-servers.ts +++ b/server/tests/api/users/users-multiple-servers.ts @@ -5,7 +5,7 @@ import 'mocha' import { Account } from '../../../../shared/models/actors' import { checkTmpIsEmpty, - checkVideoFilesWereRemoved, + checkVideoFilesWereRemoved, cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -235,7 +235,7 @@ describe('Test users with multiple servers', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/users/users-verification.ts b/server/tests/api/users/users-verification.ts index 295caae97..514acf2e7 100644 --- a/server/tests/api/users/users-verification.ts +++ b/server/tests/api/users/users-verification.ts @@ -4,7 +4,7 @@ import * as chai from 'chai' import 'mocha' import { registerUser, flushTests, getUserInformation, getMyUserInformation, killallServers, - userLogin, login, flushAndRunServer, ServerInfo, verifyEmail, updateCustomSubConfig, wait + userLogin, login, flushAndRunServer, ServerInfo, verifyEmail, updateCustomSubConfig, wait, cleanupTests } from '../../../../shared/extra-utils' import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' import { MockSmtpServer } from '../../../../shared/extra-utils/miscs/email' @@ -120,8 +120,9 @@ describe('Test users account verification', function () { await userLogin(server, user2) }) - after(function () { + after(async function () { MockSmtpServer.Instance.kill() - killallServers([ server ]) + + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/users/users.ts b/server/tests/api/users/users.ts index 8efff12ad..e7291740b 100644 --- a/server/tests/api/users/users.ts +++ b/server/tests/api/users/users.ts @@ -5,9 +5,10 @@ import 'mocha' import { User, UserRole } from '../../../../shared/index' import { blockUser, + cleanupTests, createUser, deleteMe, - flushTests, + flushAndRunServer, getAccountRatings, getBlacklistedVideosList, getMyUserInformation, @@ -17,14 +18,12 @@ import { getUsersList, getUsersListPaginationAndSort, getVideosList, - killallServers, login, makePutBodyRequest, rateVideo, registerUser, removeUser, removeVideo, - flushAndRunServer, ServerInfo, testImage, unblockUser, @@ -677,7 +676,7 @@ describe('Test users', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts index 50b231555..68c1e9a8d 100644 --- a/server/tests/api/videos/multiple-servers.ts +++ b/server/tests/api/videos/multiple-servers.ts @@ -9,7 +9,7 @@ import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/ import { addVideoChannel, checkTmpIsEmpty, - checkVideoFilesWereRemoved, + checkVideoFilesWereRemoved, cleanupTests, completeVideoCheck, createUser, dateIsValid, @@ -1029,7 +1029,7 @@ describe('Test multiple servers', function () { }) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/services.ts b/server/tests/api/videos/services.ts index 1397347d1..e9ad947b2 100644 --- a/server/tests/api/videos/services.ts +++ b/server/tests/api/videos/services.ts @@ -2,16 +2,8 @@ import * as chai from 'chai' import 'mocha' -import { - flushTests, - getOEmbed, - getVideosList, - killallServers, - ServerInfo, - setAccessTokensToServers, - uploadVideo -} from '../../../../shared/extra-utils/index' -import { flushAndRunServer } from '../../../../shared/extra-utils/server/servers' +import { getOEmbed, getVideosList, ServerInfo, setAccessTokensToServers, uploadVideo } from '../../../../shared/extra-utils/index' +import { cleanupTests, flushAndRunServer } from '../../../../shared/extra-utils/server/servers' const expect = chai.expect @@ -74,7 +66,7 @@ describe('Test services', function () { expect(res.body).to.not.have.property('thumbnail_height') }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/videos/single-server.ts b/server/tests/api/videos/single-server.ts index db2a3779f..1f366b642 100644 --- a/server/tests/api/videos/single-server.ts +++ b/server/tests/api/videos/single-server.ts @@ -6,8 +6,9 @@ import 'mocha' import { VideoPrivacy } from '../../../../shared/models/videos' import { checkVideoFilesWereRemoved, + cleanupTests, completeVideoCheck, - flushTests, + flushAndRunServer, getVideo, getVideoCategories, getVideoLanguages, @@ -17,10 +18,8 @@ import { getVideosListPagination, getVideosListSort, getVideosWithFilters, - killallServers, rateVideo, removeVideo, - flushAndRunServer, ServerInfo, setAccessTokensToServers, testImage, @@ -424,7 +423,7 @@ describe('Test a single server', function () { expect(video.dislikes).to.equal(1) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/videos/video-abuse.ts b/server/tests/api/videos/video-abuse.ts index 06bb31348..7318497d5 100644 --- a/server/tests/api/videos/video-abuse.ts +++ b/server/tests/api/videos/video-abuse.ts @@ -4,6 +4,7 @@ import * as chai from 'chai' import 'mocha' import { VideoAbuse, VideoAbuseState } from '../../../../shared/models/videos' import { + cleanupTests, deleteVideoAbuse, flushAndRunMultipleServers, getVideoAbusesList, @@ -172,7 +173,7 @@ describe('Test video abuses', function () { expect(res.body.data.length).to.equal(0) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-blacklist.ts b/server/tests/api/videos/video-blacklist.ts index cb15d1a52..e907bbdc0 100644 --- a/server/tests/api/videos/video-blacklist.ts +++ b/server/tests/api/videos/video-blacklist.ts @@ -4,7 +4,7 @@ import * as chai from 'chai' import { orderBy } from 'lodash' import 'mocha' import { - addVideoToBlacklist, + addVideoToBlacklist, cleanupTests, createUser, flushAndRunMultipleServers, getBlacklistedVideosList, @@ -425,7 +425,7 @@ describe('Test video blacklist', function () { }) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-captions.ts b/server/tests/api/videos/video-captions.ts index c6f59762a..5e13f5949 100644 --- a/server/tests/api/videos/video-captions.ts +++ b/server/tests/api/videos/video-captions.ts @@ -3,7 +3,7 @@ import * as chai from 'chai' import 'mocha' import { - checkVideoFilesWereRemoved, + checkVideoFilesWereRemoved, cleanupTests, doubleFollow, flushAndRunMultipleServers, removeVideo, @@ -195,7 +195,7 @@ describe('Test video captions', function () { await checkVideoFilesWereRemoved(videoUUID, 1) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-change-ownership.ts b/server/tests/api/videos/video-change-ownership.ts index db1220677..1c0327d40 100644 --- a/server/tests/api/videos/video-change-ownership.ts +++ b/server/tests/api/videos/video-change-ownership.ts @@ -4,7 +4,7 @@ import * as chai from 'chai' import 'mocha' import { acceptChangeOwnership, - changeVideoOwnership, + changeVideoOwnership, cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -297,7 +297,7 @@ describe('Test video change ownership - quota too small', function () { await acceptChangeOwnership(server.url, secondUserAccessToken, lastRequestChangeOwnershipId, channelId, 403) }) - after(function () { - killallServers([server]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/videos/video-channels.ts b/server/tests/api/videos/video-channels.ts index 60b84e443..345e96f43 100644 --- a/server/tests/api/videos/video-channels.ts +++ b/server/tests/api/videos/video-channels.ts @@ -4,6 +4,7 @@ import * as chai from 'chai' import 'mocha' import { User, Video } from '../../../../shared/index' import { + cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -277,7 +278,7 @@ describe('Test video channels', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-comments.ts b/server/tests/api/videos/video-comments.ts index 50224ee47..22fd8c058 100644 --- a/server/tests/api/videos/video-comments.ts +++ b/server/tests/api/videos/video-comments.ts @@ -3,11 +3,9 @@ import * as chai from 'chai' import 'mocha' import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model' -import { testImage } from '../../../../shared/extra-utils' +import { cleanupTests, testImage } from '../../../../shared/extra-utils' import { dateIsValid, - flushTests, - killallServers, flushAndRunServer, ServerInfo, setAccessTokensToServers, @@ -199,7 +197,7 @@ describe('Test video comments', function () { expect(res.body.data[1].totalReplies).to.equal(0) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/videos/video-description.ts b/server/tests/api/videos/video-description.ts index 333d539f4..db4d278bf 100644 --- a/server/tests/api/videos/video-description.ts +++ b/server/tests/api/videos/video-description.ts @@ -3,6 +3,7 @@ import * as chai from 'chai' import 'mocha' import { + cleanupTests, flushAndRunMultipleServers, getVideo, getVideoDescription, @@ -99,7 +100,7 @@ describe('Test video description', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-hls.ts b/server/tests/api/videos/video-hls.ts index 0ac84a656..22031c18b 100644 --- a/server/tests/api/videos/video-hls.ts +++ b/server/tests/api/videos/video-hls.ts @@ -5,7 +5,7 @@ import 'mocha' import { checkDirectoryIsEmpty, checkSegmentHash, - checkTmpIsEmpty, + checkTmpIsEmpty, cleanupTests, doubleFollow, flushAndRunMultipleServers, flushTests, @@ -128,7 +128,7 @@ describe('Test HLS videos', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-imports.ts b/server/tests/api/videos/video-imports.ts index 49a28e207..1233ed6eb 100644 --- a/server/tests/api/videos/video-imports.ts +++ b/server/tests/api/videos/video-imports.ts @@ -4,6 +4,7 @@ import * as chai from 'chai' import 'mocha' import { VideoDetails, VideoImport, VideoPrivacy } from '../../../../shared/models/videos' import { + cleanupTests, doubleFollow, flushAndRunMultipleServers, getMyUserInformation, @@ -241,7 +242,7 @@ describe('Test video imports', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-nsfw.ts b/server/tests/api/videos/video-nsfw.ts index 811705212..ad6a4b43f 100644 --- a/server/tests/api/videos/video-nsfw.ts +++ b/server/tests/api/videos/video-nsfw.ts @@ -2,25 +2,18 @@ import * as chai from 'chai' import 'mocha' -import { - flushTests, - getVideosList, - killallServers, - ServerInfo, - setAccessTokensToServers, - uploadVideo -} from '../../../../shared/extra-utils/index' +import { cleanupTests, getVideosList, ServerInfo, setAccessTokensToServers, uploadVideo } from '../../../../shared/extra-utils/index' import { userLogin } from '../../../../shared/extra-utils/users/login' import { createUser } from '../../../../shared/extra-utils/users/users' import { getMyVideos } from '../../../../shared/extra-utils/videos/videos' import { + flushAndRunServer, getAccountVideos, getConfig, getCustomConfig, getMyUserInformation, getVideoChannelVideos, getVideosListWithToken, - flushAndRunServer, searchVideo, searchVideoWithToken, updateCustomConfig, @@ -241,7 +234,7 @@ describe('Test video NSFW policy', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/videos/video-playlists.ts b/server/tests/api/videos/video-playlists.ts index ea349f09b..928568299 100644 --- a/server/tests/api/videos/video-playlists.ts +++ b/server/tests/api/videos/video-playlists.ts @@ -5,7 +5,7 @@ import 'mocha' import { addVideoChannel, addVideoInPlaylist, - checkPlaylistFilesWereRemoved, + checkPlaylistFilesWereRemoved, cleanupTests, createUser, createVideoPlaylist, deleteVideoChannel, @@ -860,7 +860,7 @@ describe('Test video playlists', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-privacy.ts b/server/tests/api/videos/video-privacy.ts index a823993b2..ef1cf0f07 100644 --- a/server/tests/api/videos/video-privacy.ts +++ b/server/tests/api/videos/video-privacy.ts @@ -4,6 +4,7 @@ import * as chai from 'chai' import 'mocha' import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum' import { + cleanupTests, flushAndRunMultipleServers, getVideosList, killallServers, @@ -152,7 +153,7 @@ describe('Test video privacy', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-schedule-update.ts b/server/tests/api/videos/video-schedule-update.ts index d7301a137..64f657780 100644 --- a/server/tests/api/videos/video-schedule-update.ts +++ b/server/tests/api/videos/video-schedule-update.ts @@ -4,6 +4,7 @@ import * as chai from 'chai' import 'mocha' import { VideoPrivacy } from '../../../../shared/models/videos' import { + cleanupTests, doubleFollow, flushAndRunMultipleServers, getMyVideos, @@ -165,7 +166,7 @@ describe('Test video update scheduler', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts index 92888f137..3cd43e99b 100644 --- a/server/tests/api/videos/video-transcoder.ts +++ b/server/tests/api/videos/video-transcoder.ts @@ -6,7 +6,7 @@ import { omit } from 'lodash' import { getMaxBitrate, VideoDetails, VideoResolution, VideoState } from '../../../../shared/models/videos' import { audio, getVideoFileBitrate, getVideoFileFPS, getVideoFileResolution } from '../../../helpers/ffmpeg-utils' import { - buildAbsoluteFixturePath, + buildAbsoluteFixturePath, cleanupTests, doubleFollow, flushAndRunMultipleServers, generateHighBitrateVideo, @@ -349,7 +349,7 @@ describe('Test video transcoding', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/videos-filter.ts b/server/tests/api/videos/videos-filter.ts index 179610595..e1e65260f 100644 --- a/server/tests/api/videos/videos-filter.ts +++ b/server/tests/api/videos/videos-filter.ts @@ -3,6 +3,7 @@ import * as chai from 'chai' import 'mocha' import { + cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -119,7 +120,7 @@ describe('Test videos filter validator', function () { }) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/api/videos/videos-history.ts b/server/tests/api/videos/videos-history.ts index 2a904c659..c7e55c1ab 100644 --- a/server/tests/api/videos/videos-history.ts +++ b/server/tests/api/videos/videos-history.ts @@ -3,12 +3,13 @@ import * as chai from 'chai' import 'mocha' import { + cleanupTests, createUser, - flushTests, + flushAndRunServer, getVideosListWithToken, getVideoWithToken, - killallServers, reRunServer, - flushAndRunServer, + killallServers, + reRunServer, searchVideoWithToken, ServerInfo, setAccessTokensToServers, @@ -220,7 +221,7 @@ describe('Test videos history', function () { expect(res.body.total).to.equal(0) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/videos/videos-overview.ts b/server/tests/api/videos/videos-overview.ts index c63725d71..975a5c87a 100644 --- a/server/tests/api/videos/videos-overview.ts +++ b/server/tests/api/videos/videos-overview.ts @@ -2,7 +2,7 @@ import * as chai from 'chai' import 'mocha' -import { flushAndRunServer, killallServers, ServerInfo, setAccessTokensToServers, uploadVideo } from '../../../../shared/extra-utils' +import { cleanupTests, flushAndRunServer, ServerInfo, setAccessTokensToServers, uploadVideo } from '../../../../shared/extra-utils' import { getVideosOverview } from '../../../../shared/extra-utils/overviews/overviews' import { VideosOverview } from '../../../../shared/models/overviews' @@ -87,7 +87,7 @@ describe('Test a videos overview', function () { expect(overview.channels[0].channel.name).to.equal('root_channel') }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/api/videos/videos-views-cleaner.ts b/server/tests/api/videos/videos-views-cleaner.ts index 80cecdd23..c21d46d56 100644 --- a/server/tests/api/videos/videos-views-cleaner.ts +++ b/server/tests/api/videos/videos-views-cleaner.ts @@ -10,7 +10,7 @@ import { flushAndRunServer, ServerInfo, setAccessTokensToServers, - uploadVideo, uploadVideoAndGetId, viewVideo, wait, countVideoViewsOf, doubleFollow, waitJobs + uploadVideo, uploadVideoAndGetId, viewVideo, wait, countVideoViewsOf, doubleFollow, waitJobs, cleanupTests } from '../../../../shared/extra-utils' import { getVideosOverview } from '../../../../shared/extra-utils/overviews/overviews' import { VideosOverview } from '../../../../shared/models/overviews' @@ -100,7 +100,7 @@ describe('Test video views cleaner', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/cli/create-import-video-file-job.ts b/server/tests/cli/create-import-video-file-job.ts index 191d4b460..0d378c1aa 100644 --- a/server/tests/cli/create-import-video-file-job.ts +++ b/server/tests/cli/create-import-video-file-job.ts @@ -4,6 +4,7 @@ import 'mocha' import * as chai from 'chai' import { VideoDetails, VideoFile } from '../../../shared/models/videos' import { + cleanupTests, doubleFollow, execCLI, flushAndRunMultipleServers, @@ -130,7 +131,7 @@ describe('Test create import video jobs', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/cli/create-transcoding-job.ts b/server/tests/cli/create-transcoding-job.ts index 61c310bc3..1c0e10066 100644 --- a/server/tests/cli/create-transcoding-job.ts +++ b/server/tests/cli/create-transcoding-job.ts @@ -4,6 +4,7 @@ import 'mocha' import * as chai from 'chai' import { VideoDetails } from '../../../shared/models/videos' import { + cleanupTests, doubleFollow, execCLI, flushAndRunMultipleServers, @@ -124,7 +125,7 @@ describe('Test create transcoding jobs', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/cli/optimize-old-videos.ts b/server/tests/cli/optimize-old-videos.ts index 14625f8c0..5e12c0089 100644 --- a/server/tests/cli/optimize-old-videos.ts +++ b/server/tests/cli/optimize-old-videos.ts @@ -4,6 +4,7 @@ import 'mocha' import * as chai from 'chai' import { getMaxBitrate, Video, VideoDetails, VideoResolution } from '../../../shared/models/videos' import { + cleanupTests, doubleFollow, execCLI, flushAndRunMultipleServers, @@ -112,7 +113,7 @@ describe('Test optimize old videos', function () { } }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/cli/peertube.ts b/server/tests/cli/peertube.ts index 0c11945e0..80bbc98d5 100644 --- a/server/tests/cli/peertube.ts +++ b/server/tests/cli/peertube.ts @@ -10,7 +10,7 @@ import { killallServers, flushAndRunServer, ServerInfo, - setAccessTokensToServers + setAccessTokensToServers, cleanupTests } from '../../../shared/extra-utils' describe('Test CLI wrapper', function () { @@ -46,6 +46,6 @@ describe('Test CLI wrapper', function () { await execCLI(cmd + ` auth del ${server.url}`) - killallServers([ server ]) + await cleanupTests([ server ]) }) }) diff --git a/server/tests/cli/reset-password.ts b/server/tests/cli/reset-password.ts index 1d6423814..6abb6738f 100644 --- a/server/tests/cli/reset-password.ts +++ b/server/tests/cli/reset-password.ts @@ -1,13 +1,12 @@ import 'mocha' import { + cleanupTests, createUser, execCLI, - flushTests, + flushAndRunServer, getEnvCli, - killallServers, login, - flushAndRunServer, ServerInfo, setAccessTokensToServers } from '../../../shared/extra-utils' @@ -32,7 +31,7 @@ describe('Test reset password scripts', function () { await login(server.url, server.client, { username: 'user_1', password: 'coucou' }, 200) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/cli/update-host.ts b/server/tests/cli/update-host.ts index dd594779b..55c43b32f 100644 --- a/server/tests/cli/update-host.ts +++ b/server/tests/cli/update-host.ts @@ -7,17 +7,17 @@ import { waitJobs } from '../../../shared/extra-utils/server/jobs' import { addVideoCommentThread } from '../../../shared/extra-utils/videos/video-comments' import { addVideoChannel, + cleanupTests, createUser, execCLI, - flushTests, + flushAndRunServer, getEnvCli, getVideo, getVideoChannelsList, getVideosList, killallServers, makeActivityPubGetRequest, - parseTorrentVideo, - flushAndRunServer, + parseTorrentVideo, reRunServer, ServerInfo, setAccessTokensToServers, uploadVideo @@ -70,7 +70,7 @@ describe('Test update host scripts', function () { killallServers([ server ]) // Run server with standard configuration - server = await flushAndRunServer(2) + await reRunServer(server) const env = getEnvCli(server) await execCLI(`${env} npm run update-host`) @@ -146,7 +146,7 @@ describe('Test update host scripts', function () { } }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/client.ts b/server/tests/client.ts index cdf0ce2ce..778dcd08e 100644 --- a/server/tests/client.ts +++ b/server/tests/client.ts @@ -4,12 +4,11 @@ import 'mocha' import * as chai from 'chai' import * as request from 'supertest' import { - flushTests, + cleanupTests, + flushAndRunServer, getCustomConfig, getVideosList, - killallServers, makeHTMLRequest, - flushAndRunServer, ServerInfo, serverLogin, updateCustomConfig, @@ -145,7 +144,7 @@ describe('Test a client controllers', function () { checkIndexTags(res.text, 'PeerTube updated', 'my short description', 'body { background-color: red; }') }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/server/tests/feeds/feeds.ts b/server/tests/feeds/feeds.ts index fc6543474..0dcdf09cf 100644 --- a/server/tests/feeds/feeds.ts +++ b/server/tests/feeds/feeds.ts @@ -3,6 +3,7 @@ import * as chai from 'chai' import 'mocha' import { + cleanupTests, createUser, doubleFollow, flushAndRunMultipleServers, @@ -207,7 +208,7 @@ describe('Test syndication feeds', () => { }) }) - after(function () { - killallServers(servers) + after(async function () { + await cleanupTests(servers) }) }) diff --git a/server/tests/misc-endpoints.ts b/server/tests/misc-endpoints.ts index d5c7d9dd4..ed406e1bc 100644 --- a/server/tests/misc-endpoints.ts +++ b/server/tests/misc-endpoints.ts @@ -4,11 +4,10 @@ import 'mocha' import * as chai from 'chai' import { addVideoChannel, + cleanupTests, createUser, - flushTests, - killallServers, - makeGetRequest, flushAndRunServer, + makeGetRequest, ServerInfo, setAccessTokensToServers, uploadVideo @@ -171,7 +170,7 @@ describe('Test misc endpoints', function () { }) }) - after(function () { - killallServers([ server ]) + after(async function () { + await cleanupTests([ server ]) }) }) diff --git a/shared/core-utils/miscs/miscs.ts b/shared/core-utils/miscs/miscs.ts new file mode 100644 index 000000000..c668e44c1 --- /dev/null +++ b/shared/core-utils/miscs/miscs.ts @@ -0,0 +1,7 @@ +function randomInt (low: number, high: number) { + return Math.floor(Math.random() * (high - low) + low) +} + +export { + randomInt +} diff --git a/shared/extra-utils/miscs/email-child-process.js b/shared/extra-utils/miscs/email-child-process.js index 40ae37d70..088a5a08c 100644 --- a/shared/extra-utils/miscs/email-child-process.js +++ b/shared/extra-utils/miscs/email-child-process.js @@ -6,7 +6,7 @@ process.on('message', (msg) => { if (msg.start) { const maildev = new MailDev({ ip: '127.0.0.1', - smtp: 1025, + smtp: msg.port, disableWeb: true, silent: true }) diff --git a/shared/extra-utils/miscs/email.ts b/shared/extra-utils/miscs/email.ts index f9f1bd95b..b2a1093da 100644 --- a/shared/extra-utils/miscs/email.ts +++ b/shared/extra-utils/miscs/email.ts @@ -1,4 +1,6 @@ -import { fork, ChildProcess } from 'child_process' +import { ChildProcess, fork } from 'child_process' +import { randomInt } from '../../core-utils/miscs/miscs' +import { parallelTests } from '../server/servers' class MockSmtpServer { @@ -20,7 +22,9 @@ class MockSmtpServer { } collectEmails (emailsCollection: object[]) { - return new Promise((res, rej) => { + return new Promise((res, rej) => { + const port = parallelTests() ? randomInt(1000, 2000) : 1025 + if (this.started) { this.emails = emailsCollection return res() @@ -28,7 +32,7 @@ class MockSmtpServer { // ensure maildev isn't started until // unexpected exit can be reported to test runner - this.emailChildProcess.send({ start: true }) + this.emailChildProcess.send({ start: true, port }) this.emailChildProcess.on('exit', () => { return rej(new Error('maildev exited unexpectedly, confirm port not in use')) }) @@ -38,7 +42,7 @@ class MockSmtpServer { } this.started = true this.emails = emailsCollection - return res() + return res(port) }) }) } diff --git a/shared/extra-utils/server/servers.ts b/shared/extra-utils/server/servers.ts index 3ef4b9746..ed41bfa48 100644 --- a/shared/extra-utils/server/servers.ts +++ b/shared/extra-utils/server/servers.ts @@ -3,10 +3,11 @@ import { ChildProcess, exec, fork } from 'child_process' import { join } from 'path' import { root, wait } from '../miscs/miscs' -import { readdir, readFile } from 'fs-extra' +import { copy, readdir, readFile, remove } from 'fs-extra' import { existsSync } from 'fs' import { expect } from 'chai' import { VideoChannel } from '../../models/videos' +import { randomInt } from '../../core-utils/miscs/miscs' interface ServerInfo { app: ChildProcess, @@ -29,6 +30,8 @@ interface ServerInfo { email?: string } + customConfigFile?: string + accessToken?: string videoChannel?: VideoChannel @@ -49,6 +52,10 @@ interface ServerInfo { videos?: { id: number, uuid: string }[] } +function parallelTests () { + return process.env.MOCHA_PARALLEL === 'true' +} + function flushAndRunMultipleServers (totalServers: number, configOverride?: Object) { let apps = [] let i = 0 @@ -84,23 +91,23 @@ function randomServer () { const low = 10 const high = 10000 - return Math.floor(Math.random() * (high - low) + low) + return randomInt(low, high) } async function flushAndRunServer (serverNumber: number, configOverride?: Object, args = []) { - const parallel = process.env.MOCHA_PARALLEL === 'true' + const parallel = parallelTests() const internalServerNumber = parallel ? randomServer() : serverNumber const port = 9000 + internalServerNumber - await flushTests(serverNumber) + await flushTests(internalServerNumber) const server: ServerInfo = { app: null, port, internalServerNumber, parallel, - serverNumber: internalServerNumber, + serverNumber, url: `http://localhost:${port}`, host: `localhost:${port}`, client: { @@ -116,7 +123,7 @@ async function flushAndRunServer (serverNumber: number, configOverride?: Object, return runServer(server, configOverride, args) } -function runServer (server: ServerInfo, configOverrideArg?: any, args = []) { +async function runServer (server: ServerInfo, configOverrideArg?: any, args = []) { // These actions are async so we need to be sure that they have both been done const serverRunString = { 'Server listening': false @@ -131,15 +138,19 @@ function runServer (server: ServerInfo, configOverrideArg?: any, args = []) { user_password: 'User password: (.+)' } - // Share the environment - const env = Object.create(process.env) - env['NODE_ENV'] = 'test' - env['NODE_APP_INSTANCE'] = server.serverNumber.toString() + if (server.internalServerNumber !== server.serverNumber) { + const basePath = join(root(), 'config') + + const tmpConfigFile = join(basePath, `test-${server.internalServerNumber}.yaml`) + await copy(join(basePath, `test-${server.serverNumber}.yaml`), tmpConfigFile) + + server.customConfigFile = tmpConfigFile + } - let configOverride: any = {} + const configOverride: any = {} if (server.parallel) { - configOverride = { + Object.assign(configOverride, { listen: { port: server.port }, @@ -165,18 +176,22 @@ function runServer (server: ServerInfo, configOverrideArg?: any, args = []) { admin: { email: `admin${server.internalServerNumber}@example.com` } - } + }) } if (configOverrideArg !== undefined) { Object.assign(configOverride, configOverrideArg) } + // Share the environment + const env = Object.create(process.env) + env['NODE_ENV'] = 'test' + env['NODE_APP_INSTANCE'] = server.internalServerNumber.toString() env['NODE_CONFIG'] = JSON.stringify(configOverride) const options = { silent: true, - env: env, + env, detached: true } @@ -244,7 +259,10 @@ async function checkDirectoryIsEmpty (server: ServerInfo, directory: string) { function killallServers (servers: ServerInfo[]) { for (const server of servers) { + if (!server.app) continue + process.kill(-server.app.pid) + server.app = null } } @@ -256,6 +274,10 @@ function cleanupTests (servers: ServerInfo[]) { if (server.parallel) { p.push(flushTests(server.internalServerNumber)) } + + if (server.customConfigFile) { + p.push(remove(server.customConfigFile)) + } } return Promise.all(p) @@ -280,6 +302,7 @@ export { checkDirectoryIsEmpty, checkTmpIsEmpty, ServerInfo, + parallelTests, cleanupTests, flushAndRunMultipleServers, flushTests, -- 2.41.0